我希望能够分别查询用户和系统环境变量。
就像它们显示在 Environment Variables
对话框中一样。
通过使用 GetEnvironmentVariable
和 *getenv*
函数,我只能获取合并两组变量后获得的值,用户定义的变量优先。< br/>就像命令行中的set
命令一样。
此功能对于避免在不存在具有相同名称的用户定义变量时静默回退到系统定义变量很有用。
即使是未记录的 API 也可以。
最佳答案
ExpandEnvironmentStringsForUser
( CreateEnvironmentBlock
) 将仅在您传递 NULL token 句柄时使用系统变量,但我不认为有一个函数只为您提供用户变量,因此您必须手动从注册表中读取它们。
请记住,注册表中有两个用户变量键:Environment
和Volatile Environment
。在某些版本的 Windows 上,volatile 键甚至有子键。
关于c - 如何用C在Windows中分别获取用户和系统环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029970/