powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как создать ярлык на рабочем столе файл .lnk
5 сообщений из 5, страница 1 из 1
Как создать ярлык на рабочем столе файл .lnk
    #32349381
ENN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как создать ярлык на рабочем столе файл .lnk

Куда записать понятно в Windows а как создать файл lnk
...
Рейтинг: 0 / 0
Как создать ярлык на рабочем столе файл .lnk
    #32349421
Rostyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите, код не проверял. Взял тут

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
Как програмно создать ярлык?
Группа ссылок: Диски, Папки и Файлы

Функция CreateShortcut создает ярлык в указанном месте.

Параметры
  ShortcutDir - Каталог в котором надо создавать ярлык.Можно передавать непосредственно путь каталога или одну из следующих констант:
     Desktop - Рабочий стол
     Favorites - Избранное
     Programs - Пуск\Программы
     SendTo - Отправить 
     Start Menu - Главное меню
     Startup - Автозагрузка
  CmdLine - Путь к обьекту открытия(файл или папка)

  Param - Параметры
  WorkDir - Рабочий каталог
  DirName - Имя подпапки. Оно необходимо в том случае если вы создаете ярлыки например в  "Пуск\Программы"  и вам необходимо чтобы ярлыки были в подпапке.
  LinkFile - Имя файла ярлыка. 

uses
  ...Registry, ShlObj, ActiveX, ComObj, FileUtil;

......

function CreateShortcut(const ShortcutDir, CmdLine, Param, WorkDir,DirName: string;
   LinkFile:String): Boolean;
var
  MyObject  : IUnknown;

  MySLink   : IShellLink;
  MyPFile   : IPersistFile;
  WideFile  : WideString;
  Directory, TempStr: String;
  Reg:TRegistry;
begin
  Result:=False;Directory:='';
  If (ShortcutDir='Desktop') or (ShortcutDir='Favorites') or
     (ShortcutDir='Programs') or (ShortcutDir='SendTo') or
     (ShortcutDir='Start Menu') or (ShortcutDir='Startup') then
    begin
      Reg:=TRegistry.Create;
      Reg.OpenKey('Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders',False);

      Directory := Reg.ReadString(ShortcutDir);
      Reg.Free;
      If not(DirName='') then
        Directory:=Directory+'\'+DirName;
    end;
  If DirExists(ShortcutDir)  then
    Directory:=ShortcutDir
  else
    If Directory='' then  Exit;
  If not(FileExists(CmdLine)) and not(DirExists(CmdLine)) then Exit;
  If linkFile='' then Exit;
  TempStr:=linkFile;

  If Length(linkFile)> 4  then
    Delete(TempStr, 1 ,Length(TempStr)- 3 );
  If not(AnsiUpperCase(TempStr)='LNK') then
    linkFile:=linkFile+'.lnk';
  MyObject := CreateComObject(CLSID_ShellLink);
  MySLink := MyObject as IShellLink;
  MyPFile := MyObject as IPersistFile;
  with MySLink do
    begin
      SetPath(PChar(CmdLine));
      SetArguments(PChar(Param));
      SetWorkingDirectory(PChar(WorkDir));
    end;

  if Directory[Length(Directory)]='\' then
    WideFile := Directory+LinkFile
  else
    WideFile := Directory+'\'+LinkFile;
  if MyPFile.Save(PWChar(WideFile), False)= S_OK then
    Result:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  s:=ExtractFilePath(Edit1.Text);
  Delete(s,Length(s), 1 );
  CreateShortcut( 'Programs', 'C:\my.txt', '', 'C:\', '', 'my');
end;
...
Рейтинг: 0 / 0
Как создать ярлык на рабочем столе файл .lnk
    #32349993
ENN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что надо ......

If DirExists(ShortcutDir) then

if MyPFile.Save(PWChar(WideFile), False)= S_OK then

Но не нашел прототип DirExists и PWChar
...
Рейтинг: 0 / 0
Как создать ярлык на рабочем столе файл .lnk
    #32352539
ENN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос а как теперь удалить ярлык
...
Рейтинг: 0 / 0
Как создать ярлык на рабочем столе файл .lnk
    #32352591
Rostyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как создать ярлык на рабочем столе файл .lnk
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]