Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ярлыки


volser ©   (2004-08-03 11:11:00) 

Как вызвать стандартный диалог создания и свойст ярлыка?


DVM   (2004-08-12 19:33:00) [1]

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


OSokin   (2004-08-12 19:17:00) [2]

А что же тебе мешает создать свой?


GuAV   (2004-08-11 01:25:00) [3]

Это создания ярлыка, а просили Диалог...


OSokin   (2004-08-10 20:17:00) [4]

Вот что я нашел в одном FAQ:

 function CreateShortcut(const CmdLine, Args, WorkDir, LinkFile: string):
IPersistFile;
 var
   MyObject  : IUnknown;
   MySLink   : IShellLink;
   MyPFile   : IPersistFile;
   WideFile  : WideString;
 begin
   MyObject := CreateComObject(CLSID_ShellLink);
   MySLink := MyObject as IShellLink;
   MyPFile := MyObject as IPersistFile;
   with MySLink do
   begin
     SetPath(PChar(CmdLine));
     SetArguments(PChar(Args));
     SetWorkingDirectory(PChar(WorkDir));
   end;

   WideFile := LinkFile;
   MyPFile.Save(PWChar(WideFile), False);
   Result := MyPFile;
 end;

 procedure CreateShortcuts;
 var Directory, ExecDir: String;
     MyReg: TRegIniFile;
 begin
   MyReg := TRegIniFile.Create(
     'Software\MicroSoft\Windows\CurrentVersion\Explorer');

   ExecDir := ExtractFilePath(ParamStr(0));
   Directory := MyReg.ReadString('Shell Folders', 'Programs', '') + '\' +
ProgramMenu;
   CreateDir(Directory);
   MyReg.Free;

   CreateShortcut(ExecDir + 'Autorun.exe', '', ExecDir,

     Directory + '\Demonstration.lnk');
   CreateShortcut(ExecDir + 'Readme.txt', '', ExecDir,
     Directory + '\Installation notes.lnk');
   CreateShortcut(ExecDir + 'WinSys\ivi_nt95.exe', '', ExecDir,
     Directory + '\Install Intel Video Interactive.lnk');
 end;

Только тут создается на рабочем столе


volser   (2004-08-03 17:50:00) [5]

Большое спасибо!


GuAV   (2004-08-03 13:35:00) [6]


>  создания

а в Реестре посмотреть напрягает?
RunDLL32 AppWiz.Cpl,NewLinkHere %2

> свойст

как и не ярлыка
function SHObjectProperties(hwndOwner: HWND;
 uFlags: Integer; lpstrName,
 lpstrParameters: PChar): LongBool; stdcall;
   external shell32 index 178;

procedure Properties(const FileName: string);
begin
 SHObjectProperties(Application.Handle, 2,
   PChar(FileName), nil);
end;

импортирую по индексу, чтоб пошло и в 95/98/МЕ


Наверх

Титульная страница Поиск, карта сайта Написать письмо