有没有办法在Windows上以C++编程方式设置环境路径?

LK.*_*LK. 17 c++ winapi path environment-variables

有没有办法以编程方式设置全局Windows路径环境变量(C++)?

据我所知,putenv仅为当前应用程序设置它.
直接在注册表中更改(HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)也是一种选择虽然我更喜欢API方法吗?

Ass*_*vie 26

MSDN :

调用SetEnvironmentVariable对系统环境变量没有影响.若要以编程方式添加或修改系统环境变量,将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment注册表项,然后广播WM_SETTINGCHANGE消息,并将lParam设置为字符串"Environment".这允许应用程序(如shell)获取更新.请注意,此键中列出的环境变量的值限制为1024个字符.


jus*_*sij 10

如前所述,要更改机器级别的PATH,只需更改此注册表项:

HLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Run Code Online (Sandbox Code Playgroud)

但您也可以通过更改此注册表项在用户级别设置PATH :

HKEY_CURRENT_USER\Environment\Path
Run Code Online (Sandbox Code Playgroud)

您还可以通过将application\Path详细信息添加到此注册表项来在应用程序级别设置PATH :

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\
Run Code Online (Sandbox Code Playgroud)