我希望能够分别查询用户和系统环境variables。
就像它们在“ Environment Variables
对话框中显示的一样。
通过使用GetEnvironmentVariable
和*getenv*
函数,我只能得到合并两组variables后获得的值,用户定义的优先。
就像set
命令在命令行上显示一样。
当用户定义的同名variables不存在时,这个function将有助于避免在系统定义的variables上悄无声息地回退。
即使是一个无证的API也可以。
如果您传递一个NULL标记句柄, ExpandEnvironmentStringsForUser
( CreateEnvironmentBlock
)将只使用系统变量,但我不认为有一个函数只提供给用户变量,因此您必须从注册表中手动读取它们。
请记住,注册表中有两个用户变量键: Environment
Volatile Environment
。 易失密钥甚至在某些版本的Windows上有子密钥。