![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поместить ехе в пуск>программы>автозагрузка [D7]
Zorro © (2005-01-14 20:41:00)Как поместить ехе(или ярлык) моей проги в пуск>программы>автозагрузка
и как удалить его оттуда
Zuborob (2005-01-29 12:57:00) [1]Я читал подобное в книге Delphi глазами Хакера. Там написано как помещать ярлык на Рабочий Стол и в Главное Меню. Как удалять, сейчас пишу код, жаль времени на это мало.
Doc-N (2005-01-15 21:22:00) [2]uses ShlObj;
//......
//SHGetSpecialFolderLocation
//SHGetPathFromIDList
//IShellLink
//......
procedure CreateLink(const FileName, LinkSelfFileName: pchar);
var
IObject: IUnknown;
begin
Coinitialize(nil);
if CoCreateInstance(CLSID_ShellLink, nil, 1 or
4, IUnknown, IObject) <> 0 then
begin
CoUninitialize;
exit;
end;
(IObject as IShellLink).SetPath(FileName);
(IObject as IPersistFile).Save(PWChar(WideString(LinkSelfFileName)), FALSE);
CoUninitialize;
end;
procedure CreateLinkEx(const FileName, RunParams, WorkDir, LinkSelfFileName,
Description, IconFile: pchar; IconNumber, WndParams: cardinal);
var
IObject: IUnknown;
begin
Coinitialize(nil);
if CoCreateInstance(CLSID_ShellLink, nil, 1 or
4, IUnknown, IObject) <> 0 then
begin
CoUninitialize;
exit;
end;
with (IObject as IShellLink) do
begin
SetPath(FileName);
SetArguments(RunParams);
SetWorkingDirectory(WorkDir);
SetDescription(Description);
SetIconLocation(IconFile, IconNumber);
SetShowCmd(WndParams);
end;
(IObject as IPersistFile).Save(PWChar(WideString(LinkSelfFileName)), FALSE);
CoUninitialize;
end;
Zorro (2005-01-15 13:10:00) [3]НЕ работает эта процедура, на каждую строчку ошибку выдаёт при компиляции
programania (2005-01-14 22:16:00) [4]
PROCEDURE startUP(z:boolean{true-создать});
var PIDList:PItemIDList;
begin
if SHGetSpecialFolderLocation
(form1.handle,CSIDL_STARTUP,PIDList)=NOERROR then begin
SHGetPathFromIDList(PIDList,Path);
NameI:=strPas(Path)+'\Auto.lnk';//файл ярлыка он же в меню
if z then CreateLink(nameExe,NameI,'','w'{-параметры запуска},nameExe)
else deleteFile(NameI);
end;
end;
Stilgar (2005-01-14 21:03:00) [5]Насчет создания ярлыка: нужно поискать информацию по теме IShellLink.
Zorro (2005-01-14 21:01:00) [6]copyfile (1.exe,'%ALLUSERSPROFILE%\Главное Меню\Программы\Автозагрузка\Project1.exe',true)
так не работает
а %ALLUSERSPROFILE% автоматически определяет профиль пользователя?????? или это ты так... просто написал.
begin...end (2005-01-14 20:47:00) [7]> kaZaNoVa © (14.01.05 20:43) [1]
Это ответ только на первую часть вопроса :-)
Sumor (2005-01-14 20:47:00) [8]Скопировать в %ALLUSERSPROFILE%\Главное Меню\Автозагрузка
kaZaNoVa (2005-01-14 20:43:00) [9]
CopyFile