Карта сайтаСсылкиКонтакты

Как создать ярлык Windows (.LNK)

PDF Печать
Статьи

Ярлыки очень полезны при работе с файлами и приложениями и это тот механизм, который Вы можете использовать для настройки рабочего стола, чтобы получить быстрый способ к приложениям, документам, ресурсам интернета и т.д., которые Вы используете наиболее часто.

В этой статье показывается, как создавать стандартные ярлыки Windows, используя код Delphi.

Создание ярлыков

Добавьте кнопку (Button1) на форму (Form1) и напишите этот код:


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 := 'c:\windows\calc.exe';

   { Используйте TargetName:=ParamStr(0), который
   возвращает путь и имя файла приложения, чтобы создать
   связь с Вашим Приложением }

   IObject := CreateComObject(CLSID_ShellLink) ;
   ISLink := IObject as IShellLink;
   IPFile := IObject as IPersistFile;

   with ISLink do
   begin
     SetPath(pChar(TargetName)) ;
     SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ;
   end;

   // Если Вы хотите поместить ярлык на Desktop
   SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
   SHGetPathFromIDList(PIDL, InFolder) ;

   {
    или если хотите, чтобы ярлык появился
    в некоторой "неспециальной" папке, например:
    InFolder := 'c:\SomeFolder'
   }

   LinkName := InFolder + '\Delphi Created Link.lnk';
   IPFile.Save(PWChar(LinkName), false) ;
end;

В этом примере, ссылка на Calc.exe создается на Рабочем столе. Чтобы получить папку Desktop, мы должны использовать вызов функции API SHGetSpecialFolderLocation. Второй параметр в вызове этой функции наиболее важный: целочисленная константа, которая представляет специальные папки.


 

Добавить комментарий


Защитный код
Обновить