Как запустить exe при запуске Windows
Возможный дубликат:
Как поместить exe файл в Windows Startup
Предположим, что я создал приложение на С#. После его установки я хочу, чтобы он запускался в фоновом режиме при каждом запуске Windows, или вы можете сказать, что пользователь входит в свою учетную запись Windows. Есть ли способ сделать это? Кроме написания службы Windows?
Приложение в основном показывает сообщения при срабатывании определенного события
Благодаря
Ответы
Ответ 1
Добавить в ярлык к папке запуска Windows:
Environment.GetFolderPath(Environment.SpecialFolder.Startup)
Или добавьте в реестр что-то вроде этого:
RegistryKey add = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
add.SetValue("Your App Name", "\"" + Application.ExecutablePath.ToString() + "\"");
Вы можете изменить CurrentUser на LocalMachine, если вы хотите, чтобы он запускался с каждым пользователем. Благодаря Айдиакапи.
Ответ 2
Это можно сделать с помощью реестра Windows. Я рекомендую вам проверить этот раздел реестра.
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
Ответ 3
Вы можете добавить свое приложение в реестр для запуска при запуске
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
или
HKEY_CURREN_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
или вы можете добавить его в папку автозагрузки для системы.
Это, вероятно, наиболее распространенные/самые простые варианты, если вы не хотите писать службу.
Ответ 4
Вам нужно настроить новый ключ в реестре, указывающий на ваш исполняемый файл.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Дополнительная информация в этой ссылке
http://msdn.microsoft.com/en-us/library/aa376977 (v = vs .85).aspx
Ответ 5
Самый простой способ - поместить его или ярлык в него в %userprofile%\Start Menu\Programs\Startupdirectory
или %allusersprofile%\Start Menu\Programs\Startup
Также будут отображаться ключи реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Run
(все пользователи) и HKCU\Software\Microsoft\Windows\CurrentVersion\Run
(только текущий пользователь).
Установка его как службы часто является хорошим подходом, но не если вы собираетесь быть интерактивным, как вы говорите.
Ответ 6
Вы можете записать Path
в исполняемый файл в Registry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
И он будет выполняться каждый раз при запуске окон.
Ответ 7
Вы можете поместить ярлык в приложение в C:\Users\@[email protected]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
.
Используете ли вы проект установки Visual Studio? Если да, вы можете установить ярлык непосредственно оттуда.
Ответ 8
Ну, это действительно звучит так, будто вы должны использовать "службу Windows".
Существуют и другие варианты, такие как включение ярлыка EXE в папку "Запуск" в меню "Программы" ( "Все пользователи", если вы хотите, чтобы он запускался для всех пользователей в этой системе).
Другой вариант - использовать реестр Windows. Вы можете добавить запись в "Run", которая указывает на exe:
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
Ответ 9
Поскольку никто не упомянул об этом, я укажу, что вы также можете достичь этого, используя запланированную задачу, которая запускает "При запуске системы". Тем не менее, я не пробовал это с помощью приложения, которое требует взаимодействия с пользовательским интерфейсом - оно работает для фонового процесса, но я подозреваю, что он не будет работать с чем-то, что требует контекста рабочего стола (поскольку он не существует до тех пор, пока пользователь не войдет в систему - далее).