Wie kann ich einer Verknüpfung (*.lnk) die Informationen zur eigentlichen Datei entnehmen?
Dieses Beispiel von Oliver Stoer demonstriert den Einsatz der IShellLink Struktur:
uses ComObj, ActiveX und ShlObj procedure ShowTarget(LinkFile : WideString); var IU : IUnknown; SL : IShellLink; PF : IPersistFile; FindDate : TWin32FindData; TargetFile : array[0..MAX_PATH] of char; begin // Herstellen des IShellLink und IPersistFile zum Zugriff auf die .LNK Datei. } IU := CreateComObject(CLSID_ShellLink); SL := IU as IShellLink; PF := SL as IPersistFile; // .LNK Datei in IPersistFile Objekt laden. PF.Load(PWideChar(LinkFile), STGM_READ); // Den Link durch Aufruf der Resolve-Methode auflösen SL.Resolve(0, SLR_ANY_MATCH or SLR_NO_UI); // Jetzt kommt man an die Infos SL.GetPath(TargetFile, MAX_PATH, FindDate, SLGP_UNCPRIORITY); // Zieldatei ausgeben ShowMessage(TargetFile); end;
Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
nicht getestet | Version nicht betroffen | getestet |
siehe auch: