DesktopVerknüpfungen auslesen

MMMEC

Grünschnabel
Hi Leute,

wie kann ich eigentlich den Desktop Verknüpfungen auslesen ?
Ich komm da nicht so ganz weiter.

Also ich kann schon den Icon und den Typen lesen aber z.B. nicht den ExePfad.
Und gerade den brauche ich. Komm ich da auch mit ner API Funktion ran?

Für die Icons hab ich folgende Funktion genutzt
Code:
Public Declare Auto Function SHGetFileInfo Lib "shell32.dll" (ByVal pszPath As String, _
ByVal dwFileAttributes As Integer, ByRef psfi As SHFILEINFO, ByVal cbFileInfo As Integer, _
ByVal uflags As Integer) As IntPtr

Was ich mal versucht habe ist ich hab die Veknüpfung druch einen StreamReader gejagt und mir das Ergebniss des Strings ausgeben.

Da kommt dann was tolles raus ;). Nur ich hab keien Lust ein System zu finden das auseinander zubasteln. Gibt es dafür vieleivht ne Funktoin.

Danke schonmal für euer Lösungen.

mfg
MMMEC
 
So ich hab doch noch was rumgebastelt.
Und bin zu eine Lösung gekommen. Ich find sie aber nicht so schön.
Ansatz waren die vielen Tipps wie das mit VB6 funktioniert.
Also hab ich veruscht diesen Code für meine .Net Anwendung umzuschreiben.
Mit diesen Tipps und den Referenzen aus MSDN ist dieser Code entstanden
Code:
'Shell32.dll ist eingebungen
PublicFunction GetWorkDir(ByVal sPfad AsString) AsString
Dim sLink AsString = sPfad
Dim sPath AsString = sPfad
'Hier kann man auch das ganze mit den IO Funktionen zerlegen zum Testen
'Zum Testen hat es mit so aber gereicht ;)
sLink = sLink.Substring(sLink.LastIndexOf("\") + 1)
sPath = sPath.Substring(0, sPath.LastIndexOf("\"))
Dim shellLink As Shell32.ShellLinkObject
Dim objFolItem As Shell32.ShellFolderItem
Dim objfol As Shell32.Folder
Dim shell AsNew Shell32.Shell
objfol = shell.NameSpace(sPath)
objFolItem = objfol.ParseName(sLink)
shellLink = objFolItem.GetLink
'Man könnte auch alle zurückgeben mich hat aber nur der ExePfad intressiert
Dim i1 AsInteger = shellLink.Hotkey
Dim i2 AsInteger = shellLink.ShowCommand
Dim sExePath AsString = shellLink.Path
Dim s2 AsString = shellLink.WorkingDirectory
Return sExePath
EndFunction

Wer noch eine schönere Lösung hat bitte posten.
 
Zurück