| |
|
|
- Page 1 - |
|
Jörg Sellmeyer |
von Jörg Sellmeyer zur freien Verfügung
Def Desktop(0) ReadIni$("Hkey_1","SoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders","Desktop")
Proc ReadLinkPath
Parameters File$
Declare Pos&,Size&,hFile&
Declare Link#
hFile& = Assign(File$)
Openrw hFile&
Size&=GetFileSize(hFile&)
Dim Link#,Size&
BlockRead(hFile&,Link#,0,Size&)
Close hFile&
Assign hFile&,""
Pos&=MemPos(Link#,MemPos(Link#,0,":\") + 1,":\") + MemPos(Link#,0,":\")
File$=String$(Link#,Pos&)
Dispose Link#
Return File$
EndProc
ChDir Desktop()
Var lnk$ = Desktop() + "\" + FindFirst$("*.lnk")
Print lnk$
Print ReadLinkPath(lnk$)
WaitInput
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 20.08.2008 ▲ |
|
|
|
| |
|
- Page 2 - |
|
|
Dieter Zornow | Man muss aber dann sehr viele Links testen. um eine Aussage zu treffen Ich hatte mal vor Jahren einen ähnlichen Code in ein Programm eingebaut, der hat bei ca 95 % der Linkdateien auch funktioniert aber eben nicht bei allen. Habe dann zur Sicherheit abgefragt ob das Ergebnis existiert bevor ich es weiterverarbeitet habe. Ich denke der sicherste Weg potrebbe sein, man holt sich die Beschreibung der Linkdateien und liest die dann gemäß der Beschreibung aus. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 21.08.2008 ▲ |
|
|
|
|
| Dieter Zornow
...der sicherste Weg potrebbe sein, man holt sich die Beschreibung der Linkdateien...
Ich glaube soetwas gibt es (leider) nicht. |
|
|
| |
|
|
|
Frank Abbing | Die OLE bietet hierfür das Interface IShellLink::GetPath, das genau per diesen Zweck gedacht ist. |
|
|
| |
|
|
|
Dieter Zornow | Doch es gibt eine Beschreibung und noch nicht mal schlecht erklärt |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 21.08.2008 ▲ |
|
|
|
|
Jörg Sellmeyer | Eine Beschreibung findet man unter [...] Bei mir kann ich nur einen Link nicht auslesen und der Link läßt sich auch mit der iShellLink-Methode nicht auslesen. Es ist der "Programmkompatibilitäts-Assistent" und er verweist auf eine [...] im Verzeichnis %HOMEDRIVE%%HOMEPATH% Die Informationen darin scheinen als Widestring abgelegt zu sein, da immer ein Nullbyte zwischen den einzelnen Buchstaben ist.
Dieter Z.
Man muss aber dann sehr viele Links testen. um eine Aussage zu treffen
Das war ja meine Anregung. Hat es denn mal jemand ausprobiert? Der Testcode untersucht alle Links im Startmenü. Wenn das 20 Leute machen, potrebbe es einigermaßen verläßlich sein. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.08.2008 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Leute!
Der Vollständigkeit halber :
--XProfan 10 + Windows XP SP2
$H Windows.ph
$H ocx2.ph
$I ocx2.inc
var Lnk$="C:1TestInternet Explorer.lnk"
var Lnk$="C:Dokumente und EinstellungenAll UsersStartmenüProgrammeubehörProgrammkompatibilitäts-Assistent.lnk"
ocxInit()
var Shell&=ocxCreate("WScript.Shell")
var Link&=ocxMethod(Shell&,"CreateShortcut","*"+Lnk$)
--CreateShortcut öffnet auch bereits existierende Verknüpfungen
print "Arguments :",ocxGet(Link&,"Arguments")
print "Description :",ocxGet(Link&,"Description")
print "FullName :",ocxGet(Link&,"FullName")
print "Hotkey :",ocxGet(Link&,"Hotkey")
print "IconLocation :",ocxGet(Link&,"IconLocation")
print "TargetPath :",ocxGet(Link&,"TargetPath")
print "WindowStyle :",ocxGet(Link&,"WindowStyle")
print "WorkingDirectory:",ocxGet(Link&,"WorkingDirectory")
ocxRelease(Link&,Shell&)
ocxDeInit()
waitinput
SeeYou Pascal |
|
|
| |
|
|
|
Jörg Sellmeyer | Sehr schön! Jetzt mußt Du nur noch mitteilen, wo man die Include herbekommt.
...und das corre glaube ich wirklich erst ab XP oder? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.08.2008 ▲ |
|
|
|
|
| Danke Uwe! |
|
|
| |
|
|
|
Manfred Barei | Hallo Jörg,
hier das Ergebniss bei mir, siehe Screenshot. Ausgeführt unter Windows Vista.
Saluto Manfred |
|
|
| Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 21.08.2008 ▲ |
|
|
|
|
Frank Abbing | Bei mir gehen all Lnks, Jörg. Ohne Fehler. |
|
|
| |
|
|
|
Dieter Zornow | Bei mir gehen die Handles per Assign aus, denn du gibst sie nicht wieder frei. Bei mir scheinen jede Menge Links nicht lesbar zu sein, nachdem ich die Handles frei gegeben habe.
(Siehe Anhang) |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 21.08.2008 ▲ |
|
|
|
|
Jörg Sellmeyer | Dieter Zornow
Bei mir gehen die Handles per Assign aus, denn du gibst sie nicht wieder frei. Bei mir scheinen jede Menge Links nicht lesbar zu sein, nachdem ich die Handles frei gegeben habe.
(Siehe Anhang)
Dieter Zornow
Close hFile& Das steht in meinem Code. Freier kann ich die File nicht geben. Ich sehe auf dem Bild nur Punkte und Striche. Ist da in der Ausgabe was verrutscht oder kommt das wirklich raus. Vielleicht liegts am Servicepack 3.
Na, insgesamt scheint das Verfahren dann ja nur bis XP SP2 zu funktionieren. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.08.2008 ▲ |
|
|
|