Max*_*rch 2 c++ windows env environment-variables getenv
我尝试在 Windows 上检索路径环境变量。因此,我试过
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char* path = getenv("Path");
cout << "current path is:" << path << endl;
cin.get(); // program shall be closed when it's finished
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,并为我提供了一条路径。我将它与我的实际路径进行了比较,发现我通过该程序检索到的路径是系统路径。但是,我不想获取系统路径,而是获取用户路径。我试图更改"Path"as 在我的系统上"path"引用用户路径变量而"Path"引用系统路径变量的情况,但getenv似乎忽略了这一点。如何获取系统路径变量的值?
getenv("PATH");它将一起检索系统路径和用户路径。
您需要使用 Windows 注册表机制来分别查找用户和系统路径。要访问它们,请PATH 从注册表中的两个不同位置读取 的值:
用户变量:
HKEY_CURRENT_USER\Environment
Run Code Online (Sandbox Code Playgroud)
系统变量:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Run Code Online (Sandbox Code Playgroud)