
Я запускаю установщик своего приложения при запуске Windows 7, за которым следует перезапуск системы, запрошенный установщиком. Теперь о подходе, который я использую, я пишу в раздел реестра RunOnce, чтобы мой установщик запускался только один раз, а запись автоматически удалялась после этого.
Описанный выше подход работает хорошо, за исключением одного: я не могу отобразить рабочий стол этим методом, пока установка не будет завершена и она не будет закрыта.
Я думаю, что это поведение по умолчанию для метода RunOnce. Хотелось бы это подтвердить, и если потребуется, я могу использовать ключ Run
instead RunOnce
и удалить запись оттуда, как только моя работа будет выполнена. Есть ли другой способ поиграться с RunOnce
ключом?
решение1
Ответ: мне нужно использовать метод RunOnce HKCU вместо HKLM. Порядок, в котором Windows выполняет записи запуска, следующий:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
<Logon Prompt>
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Папка автозагрузки
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
Ссылка:ИНФОРМАЦИЯ: Run, RunOnce, RunServices, RunServicesOnce и Startup