Как создать программу автозагрузки c ++ - PullRequest
13 голосов
/ 17 февраля 2009

Я создаю программу на c ++, и я хочу, чтобы пользователи могли автоматически запускать ее в Windows. Поэтому, когда пользователь запускает свой компьютер, Windows автоматически запустит эту программу. Я прочитал материал об изменении реестра или о том, как поместить его в папку автозагрузки, но какой лучший «чистый» способ сделать это?

Ответы [ 5 ]

15 голосов
/ 17 февраля 2009

Папка автозагрузки достаточно чистая.

Предоставляет пользователю возможность удалить его при необходимости.

9 голосов
/ 17 февраля 2009

Существует много способов автоматического запуска приложения, но самый простой, самый распространенный и лучший из IMO:

  1. Поместите ярлык в папку автозапуска
  2. Добавить запись автозапуска в реестр (Software \ Microsoft \ Windows \ CurrentVersion \ Run)

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

В обоих вариантах вы можете использовать либо одну настройку для всех пользователей (папка запуска All User, либо в разделе HKLM в реестре), либо для конкретного пользователя (папка запуска пользователя или ключ HKCR).

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

3 голосов
/ 17 февраля 2009

В зависимости от того, выполняете ли вы установку для всех пользователей или для каждого пользователя, поместите ее в папку «Автозагрузка для всех пользователей» или в папку «Автозагрузка для каждого пользователя». Папка «Автозагрузка», которую вы видите в меню, является слиянием обоих, но пользователи без прав администратора не могут удалить записи, поступающие из части «Все пользователи».

Тебе на самом деле ничего не нужно для этого делать. Пользователи могут сами скопировать ваш обычный ярлык в меню «Пуск». Следовательно, любая программа может быть программой автозапуска. Совсем не обязательно должен быть C ++.

0 голосов
/ 20 ноября 2011

С этим кодом вы можете сделать это

procedure TForm1.Button1Click(Sender: TObject);
var
   Reg:TRegistry;
begin
   Reg := TRegistry.Create;
   try
      Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True);
      Reg.WriteString('Program name',ParamStr(0));
   finally
     Reg.Free;
   end;

end;

или это:

using Microsoft.Win32;
private void AddStartUpKey(string _name, string  _path) {
     RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros  oft\Windows\CurrentVersion\Run", true);
     key.SetValue(_name, _path);
}
private void RemoveStartUpKey(string _name) {
     RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Micros  oft\Windows\CurrentVersion\Run", true);
     key.DeleteValue(_name, false);
}
0 голосов
/ 17 февраля 2009

Вы можете зарегистрировать его как службу Windows. Вы можете использовать «Qt Solutions» для простого создания приложения в качестве службы Windows.

...