Четверг, 28.03.2024, 13:31
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » Программирование в Delphi » Как добавить приложение в автозагрузку
Как добавить приложение в автозагрузку
Vavilov8Дата: Среда, 12.09.2012, 21:26 | Сообщение # 1
VIP
Группа: Администраторы
Сообщений: 42
Репутация: 0
Статус: Offline
Как добавить приложение в автозагрузку

Можно просто скопировать исполняемый файл в папку "Автозагрузка", узнав ее местонахождение с помощью функций модуля ShlObj.pas.
Code

program StartUp;  
{$APPTYPE CONSOLE}  
uses  
ShlObj, //!!  
SysUtils,  
Windows;  
var  
Folder: Pchar; //путь к StartUp  
List: PitemidList; //список "специальных" папок  
begin  
//ищем папку  
SHGetSpecialFolderLocation(0,CSIDL_STARTUP,List);  
new(folder);  
SHGetPathFromIDList(List,folder);  
//Нашли? Переходим в директорию StartUp  
ChDir(folder);  
//копируем файл  
CopyFile(PChar(ExtractFilePath(paramStr(0)) + ?StartUp.exe?), ?StartUp.exe?, true); //укажите имя своего EXE файла  
end.


Теперь загляните в папку "Автозагрузка". Если вы указали в функции имя СВОЕГО файла, он должен быть уже там :). Обратите внимание на три выделенных строки. С их помощью можно найти путь к любой системной папке, указав в функции SHGetSpecialFolderLocation соответствующую константу: CSIDL_DESKTOP для рабочего стола, CSIDL_FONTS для шрифтов и т.д.

А теперь более простой способ - запись ключа в секцию Run реестра. Ниже в одной процедуре совмещено и его создание, и удаление.

Code

Uses Registry;  
//............  
procedure ChangeReg(StrName: ShortString; delete: boolean);  
var  
reg: TRegistry;  
begin  
Reg := nil;  
try  
reg := TRegistry.Create;  
reg.RootKey := HKEY_LOCAL_MACHINE;  
reg.LazyWrite := false;  
reg.OpenKey(?SoftwareMicrosoftWindowsCurrentVersionRun?,false);  
if not delete then reg.WriteString(StrName, Application.ExeName)  
else reg.DeleteValue(StrName);  
reg.CloseKey;  
reg.free;  
except  
if Assigned(Reg) then Reg.Free;  
end;  
end;  

procedure TForm1.AddBtnClick(Sender: TObject);  
begin  
ChangeReg(?My App?,false); //добавляем в Автозагрузку  
end;  

procedure TForm1.RemoveBtnClick(Sender: TObject);  
begin  
ChangeReg(?My App?,true); //удаляем из Автозагрузки  
end;
 
Форум » Программирование » Программирование в Delphi » Как добавить приложение в автозагрузку
  • Страница 1 из 1
  • 1
Поиск: