如何使用C语言在Windows中分别获取用户和系统环境变量

4
我希望能够分别查询用户和系统环境变量,就像在“环境变量”对话框中显示的那样。
使用GetEnvironmentVariable*getenv* 函数只能获取两组变量合并后获得的值,其中用户定义的变量具有优先权,就像set 命令在命令行上所显示的那样。
这个功能可以避免当没有用户定义的同名变量时,悄悄地回退到系统定义的变量。即使有一个未记录的API也可以。

1
也许它们在注册表中。 - i486
1
当然,系统环境变量的位置在MSDN上有清晰的文档说明。 - David Heffernan
1个回答

3
ExpandEnvironmentStringsForUserCreateEnvironmentBlock)仅在传递空令牌句柄时使用系统变量,但我认为没有一个函数只提供用户变量。因此,您必须手动从注册表中读取它们。

请记住,注册表中有两个用户变量键:EnvironmentVolatile Environment。 在某些Windows版本上,易失性密钥甚至具有子密钥。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接