Запустите приложение, когда Windows запускается - PullRequest
0 голосов
/ 07 февраля 2012

Я проверил некоторые другие примеры.

Я работаю над выигрышем.И теперь я собираюсь создать его установщик.

Я хочу запустить программное обеспечение, когда Windows запускается и пытается использовать следующий код.

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("MyApp", Application.ExecutablePath.ToString());

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

Должен ли я поставить проверку на form_Load (), если regkey отсутствует, и если да, то добавитьэто значение для Run.

это правильно?я не хочу давать пользователю опцию, и я хочу запустить это приложение при запуске обязательно.

Спасибо.

Ответы [ 5 ]

1 голос
/ 07 февраля 2012

Вы можете создать свой класс customAction для своего установщика следующим образом: http://msdn.microsoft.com/en-us/library/d9k65z2d.aspx#Y0

Как только у вас появится этот класс, поместите код реестра в секцию коммита. Теперь, когда ваше приложение будет установлено, оно будет добавлено в реестр для запуска при запуске.

1 голос
/ 07 февраля 2012

Как прокомментировали другие пользователи, подобные вещи должны идти в установщик.В проекте установки, который вы можете создать с помощью Visual Studio, вы можете добавить ссылку на папку автозагрузки пользователя, которая должна помочь.

НО

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

НО

Вам это АБСОЛЮТНО нужно?Вы абсолютно уверены, что не можете предложить его в качестве опции для конечного пользователя?Если бы я был пользователем вашей программы, не хотел ее запускать, приложил все усилия, чтобы удалить ключ реестра, чтобы вытащить его оттуда, а затем узнать, что он снова в реестре без моего согласия, я бы очень разозлился...

0 голосов
/ 07 февраля 2012

Ваш установщик должен создать ключи реестра.

Кроме того, ваш установщик может также спросить, следует ли устанавливать для текущего пользователя или для всех пользователей.Если пользователь говорит все, тогда ключ должен быть добавлен в HKEY_LOCAL_MACHINE, а не HKEY_CURRENT_USER, что требует прав администратора.Установщики обычно имеют такую ​​привилегию.

0 голосов
/ 07 февраля 2012

Это зависит от программного обеспечения istaller, которое вы используете.Если вы используете шаблон проекта установки , предоставляемый Visual Studio, вы можете автоматически создать ключ реестра .

0 голосов
/ 07 февраля 2012

Создайте небольшое консольное приложение, которое использует строку, и запустите ее в конце вашей установки.

...