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