|
VB.Net-Forum - Beitragsübersicht - |
|
Thema | V15: Eigenschaften einer Datei auf dem Desktop auslesen |
Von |
tooli |
E-Mail |
georg.riha@spike-net.at |
Datum |
21. September 2019 um 08:37:05 |
Frage |
Ich würde gerne von einer Datei die auf dem Desktop liegt die Eigenschaften auslesen. Jedoch habe ich nicht den Filenamen sondern nur die Location Points. Eigenschaften der Datei die mit den Punkten X= 500 Y= 320. Kann mir wer helfen wie ich das machen könnte.
Grüße Tooli
|
|
Antwort: |
Von |
tooli |
E-Mail |
georg.riha@spike-net.at |
Datum |
23. September 2019 um 05:06:46 |
Antwort |
Hallo,
also mit folgendem Code lese ich den Text der Desktop Symbole und deren Position aus. Da aber eine Verknüpfung und ein Ordner den gleichen Text haben können möchte ich Sie eindeutig identifizieren indem ich noch zusätzliche Eigenschaften auslese.Imports System.Runtime.InteropServices Imports System.Text Imports System.Windows.Automation Public Class Form1 <DllImport("user32.DLL")> Public Shared Function FindWindowEx(ByVal hwndParent As IntPtr, ByVal hwndChildAfter As IntPtr, ByVal lpszClass As String, ByVal lpszWindow As String) As IntPtr End Function <DllImport("user32.dll")> Public Shared Function EnumWindows(lpEnumFunc As EnumWindowsProc, lParam As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean End Function Public Delegate Function EnumWindowsProc(hWnd As IntPtr, lParam As IntPtr) As Boolean <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> Public Shared Function GetClassName(hWnd As IntPtr, lpClassName As StringBuilder, nMaxCount As Integer) As Integer End Function Public Function GetDesktopHandle() As IntPtr Dim DesktopHandle As IntPtr = IntPtr.Zero EnumWindows(Function(WorkerW_Handle, OptionalParameter) Dim HandleToString = New StringBuilder(256) GetClassName(WorkerW_Handle, HandleToString, HandleToString.Capacity) If HandleToString.ToString = "WorkerW" Or HandleToString.ToString = "Progman" Then Dim Attachment_Folder As IntPtr = FindWindowEx(WorkerW_Handle, IntPtr.Zero, "SHELLDLL_DefView", Nothing) If Attachment_Folder <> IntPtr.Zero Then Dim Desktop_Folder As IntPtr = FindWindowEx(Attachment_Folder, IntPtr.Zero, "SysListView32", "FolderView") If Desktop_Folder <> IntPtr.Zero Then DesktopHandle = Desktop_Folder Return False ' False bedeutet das der Desktop gefnden wurde und die Suche beendet ist. End If End If End If Return True ' Desktop wurde noch nicht gefunden. Die Suche fortsetzen. End Function, IntPtr.Zero) Return DesktopHandle End Function Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim el As AutomationElement = AutomationElement.FromHandle(GetDesktopHandle()) Dim walker As TreeWalker = TreeWalker.ContentViewWalker Dim child As AutomationElement = walker.GetFirstChild(el) While child IsNot Nothing ListBox1.Items.Add(child.Current.Name) 'Hier möchte ich gewisse Eigenschaften der Datei auslesen child = walker.GetNextSibling(child) End While End Sub End Class |
|
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|