Я создаю программу на С++, и хочу, чтобы у меня была возможность разрешить пользователям автозапуск в Windows. Поэтому, когда пользователь запускает свой компьютер, окна автоматически запускают эту программу. Я прочитал материал об изменении реестра или поместив его в папку автозагрузки, но какой будет лучший "чистый" способ сделать это?
Как создать программу автоматического запуска С++
Ответ 1
Загрузочная папка достаточно чистая.
Предоставляет пользователю возможность удалить его, если необходимо.
Ответ 2
Существует много способов автозапуска приложения, но самые простые, наиболее распространенные и самые лучшие IMO:
- Поместите ярлык в папку автозапуска
- Добавить запись автозапуска в реестр (Программное обеспечение \Microsoft\Windows\CurrentVersion\Run)
Конечный результат одинаковый для обоих. Я считаю, что способ реестра выполняется раньше в процессе входа в систему, чем пусковой, но я не уверен. В любом случае, это не имеет никакого значения для большинства случаев. Я предпочитаю реестр, но это личный вкус. Вы можете автоматически создавать и удалять ключ реестра или ярлык в своем приложении.
В обоих вариантах вы можете использовать один параметр для всех пользователей (папка автозапуска всех пользователей или под ключ HKLM в реестре) или пользовательский (пользовательская стартовая папка или под клавишей HKCR).
В общем, лучше использовать параметры для каждого пользователя, потому что вы можете быть уверены, что имеете письменные привилегии в этих областях; и каждый пользователь на компьютере может иметь свою собственную настройку.
Ответ 3
В зависимости от того, выполняете ли вы установку пользователя или пользователя для каждого пользователя, поместите его в папку "Автозагрузка" для "Все пользователи" или папку "Автозагрузка" для каждого пользователя. Папка "Автозагрузка" , которую вы видите в меню, - это слияние обоих, но пользователи, не являющиеся администраторами, не могут удалить записи, поступающие из части, содержащей все пользователи.
На самом деле вам ничего не нужно делать для этого. Пользователи могут скопировать ваш обычный ярлык непосредственно в меню автозагрузки. Следовательно, любая программа может быть программой автозапуска. Не нужно вообще быть С++.
Ответ 4
Вы можете зарегистрировать его как услугу Windows. Вы можете использовать "Qt Solutions" для простого создания приложения в качестве службы Windows.
Ответ 5
С помощью этого кода вы можете сделать это
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);
}