скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Создать ярлык объекта в любой папке



- Дискеты не нужны?
- А новые?
- Еще девочки.


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 do
  begin
    // Какой файл подвергаеться воздействию запускающей программы
    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;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook