【问题标题】:How to separately get user and system environment variables in Windows with C如何使用 C 在 Windows 中分别获取用户和系统环境变量
【发布时间】:2017-12-15 05:54:15
【问题描述】:

我希望能够分别查询用户和系统环境变量。
就像Environment Variables 对话框中显示的那样。

通过使用GetEnvironmentVariable*getenv*函数,我只能得到合并两组变量后的值,用户定义的变量优先。
就像set命令显示在命令行。

当不存在同名的用户定义变量时,此功能有助于避免默默地退回到系统定义的变量。

即使是未记录的 API 也可以。

【问题讨论】:

  • 也许他们在注册表中。
  • 当然,系统环境变量的位置在 MSDN 上有明确的记录。

标签: c windows winapi environment-variables


【解决方案1】:

ExpandEnvironmentStringsForUser (CreateEnvironmentBlock) 将仅在您传递 NULL 令牌句柄时使用系统变量,但我认为没有一个函数只能为您提供用户变量,因此您必须手动从注册表。

请记住,注册表中有两个用户变量键:EnvironmentVolatile Environment。 volatile 键在某些版本的 Windows 上甚至还有子键。

【讨论】:

    猜你喜欢
    • 2015-08-20
    • 2013-06-17
    • 2015-09-16
    • 2016-09-29
    • 1970-01-01
    • 2012-02-09
    • 2012-11-05
    • 2013-09-14
    • 2014-04-13
    相关资源
    最近更新 更多