Bitte.
Ich habe auch schon diese Variante gesehen (der Einfachheit halber ohne Fehlerprüfung):
Delphi-Quellcode:
var
IObject: IUnknown;
ISLink: IShellLink;
IPFile: IPersistFile;
begin
IObject := CreateComObject(CLSID_ShellLink);
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
ISLink.SetPath ...
ISLink.SetArguments ...
IPFile.Save(PChar(LinkName), False);
end;
Was genau meinst du mit
CLSID umgehen?
Um eine LNK-Datei zu erstellen muss man eben das
COM-Objekt erzeugen, welches dafür zuständig ist. Und das wird per CLSID_ShellLink identifiziert. Sollte in jeder gängingen Windowsversion funktionieren.
Eine Alternative wäre, das LNK-Dateiformat zu verstehen (reverse engineering) und die Datei komplett per eigenem Code zu erstellen. Macht natürlich mehr Arbeit und ist wahrscheinlich nicht sinnvoll.