Принудительная установка Winforms для запуска приложения при запуске Windows

Как заставить приложение Windows с добавленным в него проектом установки установить так, чтобы оно запускалось каждый раз, когда кто-то входит в Windows?

Изменить: я знаю о настройках реестра, но, в частности, я ищу решение, которое позволит установщику установить значения реестра.

12.10.2009 22:34:06
5 ОТВЕТОВ
РЕШЕНИЕ

Вы можете добавить ярлык к вашей программе winforms в папке запуска. Файловая система проекта установки - это то, где вам нужно искать.

1
12.10.2009 22:36:46

Откройте реестр и найдите ключ

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run].

Для каждой программы, которую вы хотите запустить, автоматически создайте новое строковое значение, используя описательное имя, и установите для значения строки исполняемый файл программы.

Например, чтобы автоматически запустить Блокнот, добавьте новую запись

"Notepad"="c:\windows\notepad.exe".

Удаление запускаемого приложения Если вы пытаетесь удалить программу и не можете найти ее в папке «Автозагрузка» (обычно C:\WINDOWS\Start Menu\Programs\StartUp), возможно, она запускается из одного из разделов реестра ниже. Чтобы удалить его, удалите значение, связанное с программой, которую вы хотите удалить.

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]

Источник: http://www.pctools.com/guides/registry/detail/109/

7
12.10.2009 22:38:22

Технически вы не можете запустить приложение WinForms, когда «окна запущены»; тем не менее, вы можете запустить его, когда кто-то входит в Windows. Для этого вы делаете одно из трех:

  1. Поместите ярлык в папку запуска текущего пользователя.
  2. Поместите ярлык в папку автозагрузки «Все пользователи».
  3. Запишите ключ реестра в HKLM / Программное обеспечение / Microsoft / Windows / CurrentVersion / Run

Обновление: как указывает Крис, я пропустил путь HKCU.

1
12.10.2009 22:39:46
Простой способ - создать класс утилит
csharptest.net 13.10.2009 21:02:46

Если вам действительно нужно, чтобы ваше приложение запускалось при запуске Windows, а не когда кто-то входит в систему, вам нужно создать его как службу и при установке установить службу в «Автоматически».

В Интернете есть много мест, где вы найдете информацию об этом:

это первые три, которые я нашел, но проведите небольшое исследование и найдите ресурс, который работает для вас.

ОБНОВИТЬ

По обновленному вопросу я вижу, что требуется, чтобы программа запускалась при входе в систему, поэтому этот ответ (в определенной степени) является избыточным. Тем не менее, я оставлю это здесь на случай, если кто-то захочет получить root-доступ к сервису.

2
13.10.2009 11:56:00

Чтобы запускаться каждый раз при запуске Windows, вы должны построить свою программу как службу Windows (или, возможно, запустить ее из службы).

1
12.10.2009 22:42:11