Добавляем программу в автозапуск в Delphi

Система и файлы   30 Декабрь 2010  Автор статьи: admin 

В этом небольшом уроке я покажу, как добавить свою программу в автозапуск. В Windows, чтобы добавить программу в автозапуск необходимо обратиться к реестру, ведь именно там хранится список программ, которые операционная система запустит автоматически после ее загрузки.

Существует 2 типа автозапуска:

  • Программа будет запускаться каждый раз при запуске Windows (Run)
  • Программа запуститься только один раз при запуске Windows и больше автоматически запускаться не будет, пока ей снова не назначат автозапуск (RunOnce)

Я уже отметил, что для добавления программы в автозапуск, нужно обращаться к реестру, поэтому в раздел uses добавим модуль registry. Создадим глобальную переменную reg: TRegistry. Через нее мы и будем обращаться к реестру.

Для добавления программы в  постоянный автозапуск (Run) можно использовать следующий код:

1
2
3
4
5
6
7
8
reg := TRegistry.Create();
reg.RootKey := HKEY_LOCAL_MACHINE;

if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True) then
begin
reg.WriteString( Application.Title, Application.ExeName);
reg.CloseKey();
end;

Для удаления программы из постоянного автозапуска можно использовать код:

1
2
3
4
5
6
7
8
9
reg := TRegistry.Create();
reg.RootKey := HKEY_LOCAL_MACHINE;

if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False)
then
begin
reg.DeleteValue( Application.Title );
reg.CloseKey();
end;

Для добавления программы в одноразовый автозапуск (RunOnce) используем код:

1
2
3
4
5
6
7
8
9
reg := TRegistry.Create();
reg.RootKey := HKEY_LOCAL_MACHINE;

if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', True)
then
begin
reg.WriteString( Application.Title, Application.ExeName);
reg.CloseKey();
end;

А для удаления программы из одноразового автозапуска:

1
2
3
4
5
6
7
8
9
reg := TRegistry.Create();
reg.RootKey := HKEY_LOCAL_MACHINE;

if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', False)
then
begin
reg.DeleteValue( Application.Title );
reg.CloseKey();
end;

Также можно проверить наличие программы в автозапуске при помощи кода:

1
2
3
4
5
6
7
8
9
reg := TRegistry.Create();
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run' {для одноразового автозапуска вместо Run ставим RunOnce}, False) then begin
if reg.ValueExists(Application.Title) then
begin
// программа есть в автозапуске
end;
reg.CloseKey();
end;
  • ЕГор

    сделал программу которая открывает окна(шоу меседж постоянно) и мышь не контралируемая , добавил в автозапуск как у вас, но теперь не могу убрать не как её , как приложение не отображает , может как то сможете помочь?

Научиться программировать

  • на Delphi

  • на Java

  • на C++