如何在C ++中添加环境variables?

有没有什么办法可以通过C ++在Windows中添加环境variables

他们必须添加在“我的电脑 – >属性 – >高级 – >环境variables”

谢谢

Solutions Collecting From Web of "如何在C ++中添加环境variables?"

来自MSDN :

要以编程方式添加或修改系统环境变量,请将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment注册表项中,然后广播一个WM_SETTINGCHANGE消息,并将lParam设置为字符串“Environment”。 这使应用程序(如shell)能够获取更新…

我知道的唯一方法是通过注册表。

提示:全局变量在HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment ,而在HKEY_USERS\*\Environment每个用户的全局变量,其中*表示用户的SID。

祝你好运。

你有没有尝试在C ++中设置本地环境变量 ?

这是一个简单的实现(基于SteelBytes发布的MSDN指令):

 bool SetPermanentEnvironmentVariable(LPCTSTR value, LPCTSTR data) { HKEY hKey; LPCTSTR keyPath = TEXT("System\\CurrentControlSet\\Control\\Session Manager\\Environment"); LSTATUS lOpenStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyPath, 0, KEY_ALL_ACCESS, &hKey); if (lOpenStatus == ERROR_SUCCESS) { LSTATUS lSetStatus = RegSetValueEx(hKey, value, 0, REG_SZ,(LPBYTE)data, strlen(data) + 1); RegCloseKey(hKey); if (lSetStatus == ERROR_SUCCESS) { SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment", SMTO_BLOCK, 100, NULL); return true; } } return false; } 

Windows中的环境变量存储在Windows注册表中。 您可以使用“SetEnvironmentVariable”功能,请参阅下面链接中的功能文档。

http://msdn.microsoft.com/en-us/library/96xafkes.aspx