![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ярлыки
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/МЕ