Windows 启动文件夹环境变量

Windows 启动文件夹环境变量

我正在为我的应用程序开发一个setup.exe,将其复制到启动文件夹,路径如下:

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

现在我担心这个路径是否会在不同版本的 Windows 中发生变化。有人知道启动文件夹路径是否始终相同吗?有没有更好的方法来配置应用程序以在每次启动时启动?

任何建议都会很有帮助,

谢谢

答案1

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

否则,启动文件夹将在其他所有内容加载完成后加载。

答案2

您想要从 shell 命名空间中查找文件夹,例如通过传递FOLDERID_Startup(或FOLDERID_CommonStartup)从中查找文件夹的功能shell 命名空间

另一个答案中提到的注册表项(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 等)是更好的选择。请参阅这里

微软还拥有描述不同方法的相对顺序的文章

(启动文件夹的优点是用户容易控制)

相关内容