c - 如何用C在Windows中分别获取用户和系统环境变量

标签 c windows winapi environment-variables

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

通过使用 GetEnvironmentVariable*getenv* 函数,我只能获取合并两组变量后获得的值,用户定义的变量优先。< br/>就像命令行中的set命令一样。

此功能对于避免在不存在具有相同名称的用户定义变量时静默回退到系统定义变量很有用。

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

最佳答案

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

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

关于c - 如何用C在Windows中分别获取用户和系统环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029970/

相关文章:

c++ - 通过将标准输入/输出重定向到管道来制作子进程

c++ - GDI+ 在为 vista 重绘时没有清除我的窗口

perl - 在perl中读取msi文件

c++ - 如何轻松查看 C/C++ #include 图?

c - C 计算字符串中字符数的函数

windows - git : Self-made file has line-ending problems

windows - 在 Windows Server 数据中心找不到 WebAdministration powershell 模块

c - 如何查找命令行参数中字符的出现次数和位置

c - linux 使用系统 ("ping") 在守护进程中被阻止

c# - 为什么位图中的数据超出范围?