有没有办法以编程方式设置全局Windows路径环境变量(C++)?
据我所知,putenv仅为当前应用程序设置它.
直接在注册表中更改(HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)
也是一种选择虽然我更喜欢API方法吗?
MSDN 说:
调用SetEnvironmentVariable对系统环境变量没有影响.若要以编程方式添加或修改系统环境变量,将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment注册表项,然后广播WM_SETTINGCHANGE消息,并将lParam设置为字符串"Environment".这允许应用程序(如shell)获取更新.请注意,此键中列出的环境变量的值限制为1024个字符.
如前所述,要更改机器级别的PATH,只需更改此注册表项:
HLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
但您也可以通过更改此注册表项在用户级别设置PATH :
HKEY_CURRENT_USER\Environment\Path
您还可以通过将application\Path详细信息添加到此注册表项来在应用程序级别设置PATH :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\