On Windows 7 -
Code behind Windows Form application -
Public Class Form1
Private DesktopFolderView As Shell32.ShellFolderView
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ListBox1.Items.Clear()
Dim selItems As Shell32.FolderItems = DesktopFolderView.SelectedItems()
For Each fitem As Shell32.FolderItem In selItems
ListBox1.Items.Add(fitem.Name)
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
Dim selItems As Shell32.FolderItems = DesktopFolderView.Folder.Items
For Each fitem As Shell32.FolderItem In selItems
ListBox1.Items.Add(fitem.Name)
Next
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim oShell As Shell32.Shell
Dim oWindows As SHDocVw.ShellWindows
Dim hwnd As IntPtr
Dim ieDesktop As SHDocVw.InternetExplorer
oShell = New Shell32.Shell
oWindows = oShell.Windows()
ieDesktop = oWindows.FindWindowSW(0, vbNull, 8, hwnd, 1)
DesktopFolderView = DirectCast(ieDesktop.Document, Shell32.ShellFolderView)
End Sub
End Class
Great.
It worked very well for me.
Thanks a lot.
BTW, if you want to determine if a FolderItem is a file system object you can check FolderItem.IsFileSystem property