Pfad einer Verknüpfung
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Pfad einer Verknüpfung
Gibt es einen Befehl der den Pfad auf den sich eine Verknüpfung bezieht zurückgibt???
KeyKon
KeyKon
@KeyKon
ein Befehl ist mir nicht bekannt, aber vielleicht hilft dir das weiter:
ein Befehl ist mir nicht bekannt, aber vielleicht hilft dir das weiter:
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
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Ich glaub da hat sich der Fehlerteufel eingeschlichen
Erste Zeile soll wohl:
lauten

Erste Zeile soll wohl:
Code: Alles auswählen
Procedure.s GetAssociatedProgram(Extension.s)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Pfad einer Verknüpfung
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

AMD XP 2400+ · 1 GB RAM · Radeon 9800 Pro · Win XP SP1 · IE 6.0
- Andre
- PureBasic Team
- Beiträge: 1765
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
@ts-soft: das war schonmal ein guter Tipp.
Wollte die Procedure mal mit einer Verknüpfung auf meinem Desktop testen
aber das gibt's nur einen leeren String !?
Wollte die Procedure mal mit einer Verknüpfung auf meinem Desktop testen
Code: Alles auswählen
Debug GetAssociatedProgram("C:\Dokumente und Einstellungen\André\Desktop\Rechner")
Hallo KeyKon,
ich hab dich leider falsch verstanden. Wie bereits gesagt ist die Prozedur nur für Dateiverknüpfungen zu gebrauchen, wenn man wissen möchte, mit welchem Pfad + Programm z.B. ein Word-Dokument (Extension = doc) geöffnet wird.
GetAssociatedProgram("doc")
debug AssociatedProgram$
Damit kann man natürlich keinen Pfad von Verknüpfungen auf dem Desktop oder der Shortcut-Leiste ermitteln. Wie das geht weiß ich leider nicht, da muß dir ein anderer helfen.
Sorry nochmal für das Mißverständnis!
Robert
ich hab dich leider falsch verstanden. Wie bereits gesagt ist die Prozedur nur für Dateiverknüpfungen zu gebrauchen, wenn man wissen möchte, mit welchem Pfad + Programm z.B. ein Word-Dokument (Extension = doc) geöffnet wird.
GetAssociatedProgram("doc")
debug AssociatedProgram$
Damit kann man natürlich keinen Pfad von Verknüpfungen auf dem Desktop oder der Shortcut-Leiste ermitteln. Wie das geht weiß ich leider nicht, da muß dir ein anderer helfen.
Sorry nochmal für das Mißverständnis!
Robert
musst halt nur den pfad austauschen, bzw ne prozedur draus basteln, in der du den pfad übergibst.
edit: scheint nicht bei allen verknüpfungen zu funktionieren.
edit2: doch, hatte nur den falschen ordner erwischt (win2000 admin/allusers und so)
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
edit: scheint nicht bei allen verknüpfungen zu funktionieren.
edit2: doch, hatte nur den falschen ordner erwischt (win2000 admin/allusers und so)
Zuletzt geändert von MLK am 02.11.2004 13:31, insgesamt 1-mal geändert.