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: