.appxbundle не может изменить реестр
У меня есть этот простой кусок кода, добавление моего приложения для запуска при запуске Windows. Работает отлично.
RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rk.SetValue("my_app", Application.ExecutablePath);
Затем я упаковываю его в проект упаковки приложений Windows, подключаю к хранилищу Windows, выбираю "Создать пакеты приложений..." и получаю полученный.appxbundle. Хорошо пока. Я устанавливаю это локально. (также установка сгенерированного сертификата (.cer), чтобы я мог установить его вообще.)
Как только я запускаю установленное приложение и нажимаю кнопку с кодом выше, в реестре ничего не меняется! Это не сбой, у меня есть попытка.. поймать код. Он просто молча игнорирует это.
Запуск из Visual Studio работает нормально, реестр обновляется.
На самом деле, все, что я хочу, это приложение, которое запускается при запуске Windows, меня не особо интересует, как этого добиться, поэтому любые идеи приветствуются!
Редактировать: я забыл сказать самое важное: это рабочий стол Windows, приложение Windows Forms. Это не приложение UWP, а окно, наследующее обычный System.Windows.Forms.Form, скомпилированный с x86.
Ксавье упоминает расширение StartupTask, это пакет nuget, но, кажется, его используют, когда у вас есть приложение UWP.
1 ответ
На самом деле, все, что я хочу, это приложение, которое запускается при запуске Windows, меня не особо интересует, как этого добиться, поэтому любые идеи приветствуются!
Вам нужно использовать windows.startupTask
Расширение для вашего упакованного приложения UWP. Пожалуйста, смотрите Запуск исполняемого файла, когда пользователи входят в Windows. С этим расширением вы можете запускать свое приложение всякий раз, когда пользователь входит в систему.
Обратите внимание: пользователь должен запустить ваше приложение хотя бы один раз, чтобы зарегистрировать эту задачу запуска.