Среда, 24.04.2024, 03:23
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: vavilov8  
Форум » Delphi » Уроки » Как добавить приложение в автозагрузку
Как добавить приложение в автозагрузку
vavilov8Дата: Четверг, 05.01.2012, 18:37 | Сообщение # 1
Титул: Генералиссимус
Сообщений: 10
Репутация: [ 0 ]
Как добавить приложение в автозагрузку

Можно просто скопировать исполняемый файл в папку "Автозагрузка", узнав ее местонахождение с помощью функций модуля 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
Поиск: