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

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

Как поместить ехе в пуск>программы>автозагрузка [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


Наверх

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