Ich habe
hier den folgenden Code gefunden:
Delphi-Quellcode:
uses ShlObj,
ActiveX, ComObj;
...
procedure TForm1.Button1Click(Sender: TObject) ;
var
IObject : IUnknown;
ISLink : IShellLink;
IPFile : IPersistFile;
PIDL : PItemIDList;
InFolder :
array[0..MAX_PATH]
of Char;
TargetName :
String;
LinkName : WideString;
begin
TargetName := '
calc.exe';
{Use TargetName:=ParamStr(0) which
returns the path and file name of the
executing program to create a link to your
Application}
IObject := CreateComObject(CLSID_ShellLink) ;
ISLink := IObject
as IShellLink;
IPFile := IObject
as IPersistFile;
with ISLink
do
begin
SetPath(pChar(TargetName)) ;
//SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ;
end;
// if we want to place a link on the Desktop
SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
SHGetPathFromIDList(PIDL, InFolder) ;
{
or if we want a link to appear in
some other, not-so-special, folder:
InFolder := 'c:\SomeFolder'
}
LinkName := InFolder + '
\Delphi Created Link.lnk';
IPFile.Save(PWChar(LinkName), false) ;
end;
Der Code scheint auch ohne Pfadangabe zu funktionieren. Zumindest mit der calc.exe...