procedure TForm1.Button1Click(Sender: TObject);
var
MyObject: IUnknown;
MyIcon: IShellLink;
MyPFile: IPersistFile;
FileName: string;
Directory: string;
WFileName: WideString;
MyReg: TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MyIcon := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
//Указать что является запускающей программой
FileName := 'C:\Project.exe';
with MyIcon dobegin// Какой файл подвергаеться воздействию запускающей программы
SetArguments('C:\Project.exe');
//Установить путь к запускающему файлу
SetPath(PChar(FileName));
// Установить рабочую директорию
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg :=
TRegIniFile.Create('Software\MicroSoft\Windows\CurrentVersion\Explorer');
{Begin_Чтобы положить ярлык на Desktop}
Directory := MyReg.ReadString('Shell Folders', 'Desktop', '');
{End_Чтобы положить ярлык на Desktop}{Begin_Чтобы положить ярлык в start menu}//{Directory := MyReg.ReadString('Shell Folders','Start Menu','')+// '\Whoa!'; //CreateDir(Directory);{End_Чтобы положить ярлык в start menu}{Begin_Чтобы положить ярлык в любую директор.}//Directory := 'c:\windows\desktop';{End_Чтобы положить ярлык в любую директор.}
WFileName := Directory + '/ShortCut1.lnk';
MyPFile.Save(PWChar(WFileName), False);
MyReg.Free;
end;
Статья Создать ярлык объекта в любой папке раздела Файловая система Ярлыки может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.