检索用户路径环境变量

时间:2013-05-26 09:12:14

标签: c++ windows environment-variables env 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
}

这很好用,给了我一条路。我将它与我的实际路径进行了比较,发现该程序检索的路径是 system 路径。但是,我不想获取系统路径,而是用户路径。我尝试更改"Path"的情况,因为我的系统"path"指的是用户路径变量,而"Path"指的是系统路径变量,但getenv似乎忽略了这一点。如何获取 system 路径变量的值?

1 个答案:

答案 0 :(得分:4)

getenv("PATH");它将一起检索系统路径和用户路径。

您需要使用Windows注册表机制分别找出用户系统路径。要访问它们,请从注册表中的两个不同位置读取PATH的值:

用户变量:

HKEY_CURRENT_USER\Environment

系统变量:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment