2016-06-01 10 views
-2

ここで、変数の完全なリストを取得できますが、WinAPI関数に置き換えられますか?ExpandEnvironmentStringsForUser変数リスト

MSDNには、%USERPROFILE%という1つの例しか含まれていません。

このリストは完全で正しいですか? http://www.rapidee.com/en/environment-variables

+0

リストはユーザーが編集できます。 dosプロンプトを開き、 'set'と打ち込んでリターンキーを押してください。 –

+2

知っておく必要がある場合は、間違っています。あなたは最終的に何を達成しようとしていますか? – IInspectable

+0

@IInspectable私は特別な設定エディタのオートコンプリートシステムに取り組んでいます。あなたが%をタイプするとき、それは変種を提供します。設定ファイルのエントリは、「クリアな」Windowsマシン上で展開するために有効である必要があります。私が見つけたテーブルは、管理者にツールチップで、どの変数が必要なのか、それがどのように展開されるのかを示す良いアイデアだと思っていました。 – noober

答えて

2

GetEnvironmentStringsを呼び出して、呼び出し時のプロセス環境を確認してください。名前と値のペアを見つけるために返される2つのヌル終了文字列を解析する必要があります。

環境変数の明確なリストはありません。各プロセスは、独自のプライベート環境を維持します。環境は、プロセスの作成時に指定されます。通常、親プロセスの環境を継承します。しかしいつもではない。親プロセスがそれ自身と異なる子プロセスの環境を指定することは、完全に可能であり、通常である。

環境がプロセスの存続期間中に変更される可能性があることにも注意してください。 SetEnvironmentVariableに発信すると、呼び出しプロセスの環境が変更されます。

リンク内の変数のリストが環境内に存在する場合と存在しない場合があります。環境には、これらの変数のすべてを含めることも、それらの変数を含めることもできません。そのリストにない変数が含まれている可能性があります。変数はまったく含まれていない可能性があります。

環境変数の詳細については、Environment Variables (MSDN)をご覧ください。

+0

残念ながら、私が取り組んでいるエディタ(IInspectableへの私の答えを見てください)はLAMPの下で動作し、Windowsコールはそこでは不可能です。私は今すぐ参照してください、私は代わりに、新鮮なWindowsマシン上で機能によって拡張するためのリストは何かを尋ねる必要があります。 (そして、おそらく、リストはWindowsのバージョンによって多少異なります)。 – noober

+1

あなたの質問には、Windows APIの使用を意味するwinapiタグが付けられました。したがって、この答え。 –

+0

私が尋ねた関数がWinAPIに属しているので、タグが付けられています。私はちょうど最初の1つの動作を予測するために、別のWinAPI関数を使用することはできません。 – noober