Переменная среды папки автозагрузки Windows

Я разрабатываю файл setup.exe для своего приложения, который копирует его в папку автозагрузки по следующему пути:

cd %PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Startup

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

Любой совет будет очень полезным,

Спасибо

2 ответа

Приоритет запуска в Windows выглядит следующим образом: от начала до конца и до начала:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
SystemDrive\Documents and Settings\All Users\Start Menu\Programs\Startup
SystemDrive\Documents and Settings\username\Start Menu\Programs\Startup

Последние два пункта относятся к дням Windows XP. Которые относятся к %PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Startup

И да, чтобы ответить на ваш вопрос, Windows Vista, 7, 8 и 10 используют одну и ту же папку запуска.

Итак, если вы хотите, чтобы ваша программа запускалась первой, всегда используйте: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

В противном случае папка автозагрузки будет загружена после загрузки всего остального.

Вы хотите искать папки из пространства имен оболочки, например, передавая FOLDERID_Startup (или же FOLDERID_CommonStartup) к функциям для поиска папки из пространства имен оболочки.

Записи реестра (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run и другие), упомянутые в другом ответе, являются лучшими вариантами. Смотри здесь

У Microsoft также есть статья, описывающая относительный порядок различных методов.

(Преимущество папки запуска заключается в простоте управления пользователем)

Другие вопросы по тегам