Способы автозапуска моего приложения C# во время запуска в Windows 8

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

RegistryKey rkHKLM = Registry.LocalMachine;
RegistryKey rkRun;
RegistryKey rkHKCU = Registry.CurrentUser;
RegistryKey rkRun1;

rkRun = rkHKLM.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkRun1 = rkHKCU.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (checkBox1.Checked)
{
    rkRun.SetValue("MyApp", Application.ExecutablePath);
    rkRun1.SetValue("MyApp", Application.ExecutablePath);
}
else
{
    rkRun.DeleteValue("MyApp");
    rkRun1.DeleteValue("MyApp");
}

Этот метод не работает в Windows 8. Но у меня нет этой проблемы в Windows 7 или XP. Что-то другое для Windows 8? Есть ли какой-то новый подход?

  • К вашему сведению, я настроил приложение для запуска от имени администратора, но все равно не запускается автоматически при запуске.

person Coolguy    schedule 23.06.2015    source источник
comment
Разработайте ключ reg вручную с помощью regedit, затем начните кодировать   -  person David Heffernan    schedule 23.06.2015
comment
Откуда вы знаете, что ваша программа не запустилась? Возможно, он запускается и сразу же падает, возможно, потому, что вы пытаетесь запустить его под учетной записью, у которой недостаточно прав для действий, которые он пытается выполнить. Что на самом деле делает ваша программа? Есть ли в журнале событий какие-либо указания на сбой?   -  person spender    schedule 02.07.2015


Ответы (2)


Добавьте ссылку или командный файл в:

c:\Users\ (имя пользователя) \AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

вы, вероятно, могли бы заменить c:\Users\ (username) \AppData\Roaming на "%AppData%" в своем коде на

Environment.GetEnvironmentVariable("AppData");
person SteveFerg    schedule 23.06.2015
comment
Я попытался вручную поместить ярлык моего приложения в папку автозагрузки... но он по-прежнему не может запускаться автоматически во время запуска... - person Coolguy; 23.06.2015
comment
Хм. Очень странно. Он отлично работает для меня. Я знаю, это может звучать глупо, но в командной строке DOS, если вы наберете echo %UserName%, совпадает ли имя пользователя с используемым вами c:\User\‹UserName›? - person SteveFerg; 23.06.2015
comment
Еще одна вещь, на которую стоит обратить внимание, перейдите в диспетчер задач (‹ctrl›‹alt›‹del›, затем выберите диспетчер задач) или запустите taskmgr.exe, а затем щелкните вкладку «Автозагрузка» и посмотрите, появляется ли он там. - person SteveFerg; 23.06.2015

Поместив ярлык в: c:\Users\{имя пользователя}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, приложение должно запускаться при входе в систему.

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

"Управляемая оболочка планировщика заданий" — полезная библиотека для создания задач программным путем.

person Stokke    schedule 23.06.2015