EnvironmentManager クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
環境変数の読み取りと書き込みを行うクラス。
public ref class EnvironmentManager sealed
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Windows.System.EnvironmentManagerContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class EnvironmentManager final
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Windows.System.EnvironmentManagerContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class EnvironmentManager
Public NotInheritable Class EnvironmentManager
- 継承
- 属性
注釈
API によって環境変数の追跡が追加されます。これは、アプリによって記述された環境成果物をクリーンにアンインストールするために使用されます。 追跡を使用すると、アプリがアンインストールされたときに、以前に書き込まれた追跡された変数を復元することもできます。
パッケージ アプリの場合、新しい API で作成または変更された変数が追跡されます。 新しい API で作成または変更されていない変数は、引き続き追跡されません。
プラットフォームでは、パッケージ化されたアプリのアンインストールを追跡できますが、パッケージ化されていないアプリのアンインストールは追跡できません。 パッケージ化されていないアプリの場合、アプリ独自のアンインストーラーは環境変数をクリーンするのに依存します。 パッケージ化されていないアプリでは、 SetEnvironmentVariable API を呼び出して、値の空の文字列または RemoveFromPath を呼び出すことで、アンインストール時に独自のクリーンアップを提供できますが、これにより PATH 変数からパスが削除され、以前の状態に戻りません。
パッケージをアンインストールすると、環境のクリーンアップと復元がトリガーされます。
- アプリによって作成された変数はすべて削除されます。
- 変数が最初にアプリによって作成されたのではなく、アプリによって最後に変更された場合、その値は別のアプリによって設定された最後の値に復元されます。
- これらの API を使用する以外のメカニズムによって行われた変数の変更 (たとえば、RegEdit を使用して手動で変更を行うユーザー) が考慮されます。
注意
変数を空の文字列に設定するアプリは、実質的に変数を削除するため、新しい値を設定する必要はありません。
その他の注意事項:
- システムはレジストリ リスナーを使用しません。 そのため、何かが変更されたかどうかを知る唯一の方法は、呼び出し元がこれらの API を使用して変数を作成または変更するかどうか、またはそれを行ったアプリがアンインストールされたかどうかです。
- システムでは、API の外部で行われた変更は追跡されません。パッケージ化されていないアプリのアンインストールは追跡されません。
- パッケージ 化されたアプリをアンインストールすると、その変数の有効期間中にその変数に対して行われたその他の変更 (追跡または追跡解除) に関係なく、作成したすべての変数が削除されます。
- これらの API を使用して変数が作成されていない場合、パッケージ アプリをアンインストールしても変数は削除されません。代わりに、そのアプリによって (API を介して) 最後に行われた変更は元に戻されます。
- アラカルト アプリ には ID がありますが、パッケージ アプリのインストール方法はインストールされません。 アラカルト アプリがアンインストールされたタイミングを検出する信頼性の高い方法はありません。 そのため、アラカルト アプリによって作成/書き込まれた変数は追跡されますが、アプリがアンインストールされるときにクリーンアップされることはありません。
プロパティ
AreChangesTracked |
環境変数の変更を追跡するかどうかを示す値を取得します。 |
IsSupported |
EnvironmentManager が現在のデバイス/OS バージョンでサポートされているかどうかを示す値を取得します。 |
メソッド
AddExecutableFileExtension(String) |
PATHEXT 環境変数の末尾に、指定したファイル拡張子を追加します。 |
AppendToPath(String) |
PATH 環境変数の末尾に指定した パス を追加します。 |
GetEnvironmentVariable(String) |
現在の EnvironmentManager のスコープで指定された環境変数の値を取得します。 |
GetEnvironmentVariables() |
現在の EnvironmentManager のスコープにある環境変数のコレクションを取得します。 |
GetForMachine() |
システム全体のスコープで EnvironmentManager を取得します。 |
GetForProcess() |
現在のプロセスをスコープにした EnvironmentManager を取得します。 |
GetForUser() |
現在のユーザーにスコープが設定された EnvironmentManager を取得します。 |
RemoveExecutableFileExtension(String) |
PATHEXT 環境変数の末尾から、指定したファイル拡張子を削除します。 |
RemoveFromPath(String) |
PATH 環境変数の末尾から指定した パス を削除します。 |
SetEnvironmentVariable(String, String) |
現在の EnvironmentManager のスコープで、指定した環境変数の値を設定します。 |