Pfad einer Verknüpfung
Verfasst: 01.11.2004 22:32
Gibt es einen Befehl der den Pfad auf den sich eine Verknüpfung bezieht zurückgibt???
KeyKon
KeyKon
Code: Alles auswählen
Procedure GetAssociatedProgram(Extension.s)
Global AssociatedProgram$
hKey.l = 0
KeyValue.s = Space(255)
datasize.l = 255
AssociatedProgram$ = ""
If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, "." + Extension, 0, #KEY_READ, @hKey) = #ERROR_SUCCESS
If RegQueryValueEx_(hKey, "", 0, 0, @KeyValue, @datasize) = #ERROR_SUCCESS
KeyNext.s = Left(KeyValue, datasize-1)
hKey.l = 0
KeyValue.s = Space(255)
datasize.l = 255
If RegOpenKeyEx_(#HKEY_CLASSES_ROOT, Keynext + "\Shell\Open\Command", 0, #KEY_READ, @hKey) = #ERROR_SUCCESS
If RegQueryValueEx_(hKey, "", 0, 0, @KeyValue, @datasize) = #ERROR_SUCCESS
AssociatedProgram$ = Left(KeyValue, datasize-1)
EndIf
EndIf
EndIf
EndIf
Pos = FindString(LCase(AssociatedProgram$), ".exe", 1)
If Pos <> 0
AssociatedProgram$ = Left(AssociatedProgram$, Pos + 4)
AssociatedProgram$ = RemoveString(AssociatedProgram$, Chr(34), 1)
EndIf
ProcedureReturn AssociatedProgram$
EndProcedure
Code: Alles auswählen
Procedure.s GetAssociatedProgram(Extension.s)
Danilo hat in diesem (bezw. dem alten) oder dem englischen Forum mal den Code geposted. Finde ich leider momentan nicht...KeyKon hat geschrieben:Gibt es einen Befehl der den Pfad auf den sich eine Verknüpfung bezieht zurückgibt???
KeyKon
Code: Alles auswählen
Debug GetAssociatedProgram("C:\Dokumente und Einstellungen\André\Desktop\Rechner")
Code: Alles auswählen
If ReadFile(0,"C:\Dokumente und Einstellungen\All Users\Desktop\Media Player Classic.lnk")
Repeat
ergebnis.s=ReadString()
Until Mid(ergebnis,2,1)=":"
Debug ergebnis
Else
Debug "konnte nicht gelesen werden"
EndIf