In dem du kuckst, wie ich es gemacht habe und ihn deinen Bedürfnissen anpaßt.
aber im Grunde genommen brauchst du nur diese Funktion:
Delphi-Quellcode:
function BuildLink(ExeFile, LinkFile, Description: string): Integer;
var
wLinkFile : WideString;
PersistFile : IPersistFile;
Link : IShellLink;
begin
result := 3;
wLinkFile := LinkFile;
if CoCreateInstance(CLSID_SHellLink, nil, CLSCTX_INPROC_SERVER, IShellLink,
Link) = S_OK then
begin
{$I-}
MkDir(GetSpecialFolder(CSIDL_PROGRAMS) + '\' + ParamStr(2));
if IOResult <> 0 then
begin
result := 2;
exit
end;
{$I+}
PersistFile := Link as IPersistFile;
Link.SetDescription(pointer(Description));
Link.SetArguments(pointer(ExeFile));
Link.SetWorkingDirectory(pointer(CutFilename(ExeFile)));
Link.SetPath(pointer(ExeFile));
if PersistFile.Save(PWideChar(wLinkFile), TRUE) = S_OK then
result := -1
else
result := 3;
end;
end;
aufrufen. Der zweite Parameter gibt an wo die lnk-Datei landen soll und wie sie heißen soll.