【问题标题】:retrieve user path environment variable检索用户路径环境变量
【发布时间】:2013-05-21 09:38:57
【问题描述】:

我尝试在 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 路径。但是,我不想获取 system 路径,而是获取 user 路径。我试图更改"Path" 的大小写,因为在我的系统上"path" 指的是user 路径变量,而"Path" 指的是system 路径变量,但是@ 987654325@ 似乎忽略了这一点。如何获取 system 路径变量的值?

【问题讨论】:

    标签: c++ windows environment-variables env getenv


    【解决方案1】:

    getenv("PATH"); 会同时获取system路径和user路径。

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

    用户变量:

    HKEY_CURRENT_USER\Environment
    

    系统变量:

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

    【讨论】:

    • 谢谢!还有一个问题(我很好奇:)):如果我通过setenv 设置路径会发生什么。两条路径都会改变吗?
    • 好问题,setenv 设置变量不会将它们永久保存在系统中,更改哪个都没有关系。
    猜你喜欢
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多