Kein Wunder das sich die Leute das lieber selber geschrieben haben. Das ist echt weniger Arbeit.
Falls es dich noch interessiert hier die Variante die ich benutzt hab (auf mein Problem abgestimmt, muss also wahrscheinlich noch erweitert werden (Fehlerüberprüfung,....))
Delphi-Quellcode:
function TForm1.GetLink(FileName: String): String;
var ShellLink: TShellLink;
SR: TSearchRec;
Temp: String;
begin
ShellLinkResolve(FileName, ShellLink); // Aus der JclShell
Temp := Ed_Lnk.Text + ExtractFileName(ShellLink.Target); // Link wird korrigiert
If FindFirst(PChar(Temp), faAnyFile, SR) = 0 Then
Result := SR.Name // Datei gefunden
else // falscher Link
begin
OpenDialog.Title := 'Ich kann die Datei ' + Temp + ' nicht finden. Such selber danach!';
OpenDialog.InitialDir := Ed_Lnk.Text;
if OpenDialog.Execute then
Result := ExtractFileName(OpenDialog.FileName)
else
Result := '';
end;
FindClose(SR);
end;