2017-07-11 22 views
4

ユーザー環境変数とシステム環境変数を個別に照会できるようにしたいと考えています。
これは、Environment Variablesダイアログに示されているようです。CでWindowsでユーザー環境変数とシステム環境変数を個別に取得する方法

GetEnvironmentVariable*getenv*関数を使用すると、ユーザー定義の変数を優先して2つの変数セットをマージした後に得られる値しか得られません。
コマンドラインにsetコマンドが表示されているようです。

この機能は、同じ名前のユーザー定義の変数が存在しない場合、システム定義変数に黙って陥るのを避けるのに便利です。

ドキュメント化されていないAPIでも問題ありません。

+1

レジストリに登録されている可能性があります。 – i486

+1

システム環境変数の場所は、MSDNにはっきりと記載されています。 –

答えて

3

ExpandEnvironmentStringsForUserCreateEnvironmentBlock)は、NULLトークンハンドルを渡す場合にのみシステム変数を使用しますが、ユーザー変数を与える関数はないと思いますので、レジストリから手動で読み取らなければなりません。

レジストリには、ユーザー変数キーが2つ(EnvironmentVolatile Environment)あることに注意してください。揮発性キーには、Windowsの一部のバージョンではサブキーがあります。

関連する問題