次の方法で共有


EnvironmentManager クラス

定義

環境変数の読み取りと書き込みを行うクラス。

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
継承
Object Platform::Object IInspectable EnvironmentManager
属性

注釈

API によって環境変数の追跡が追加されます。これは、アプリによって記述された環境成果物をクリーンにアンインストールするために使用されます。 追跡を使用すると、アプリがアンインストールされたときに、以前に書き込まれた追跡された変数を復元することもできます。

パッケージ アプリの場合、新しい API で作成または変更された変数が追跡されます。 新しい API で作成または変更されていない変数は、引き続き追跡されません。

プラットフォームでは、パッケージ化されたアプリのアンインストールを追跡できますが、パッケージ化されていないアプリのアンインストールは追跡できません。 パッケージ化されていないアプリの場合、アプリ独自のアンインストーラーは環境変数をクリーンするのに依存します。 パッケージ化されていないアプリでは、 SetEnvironmentVariable API を呼び出して、値の空の文字列または RemoveFromPath を呼び出すことで、アンインストール時に独自のクリーンアップを提供できますが、これにより PATH 変数からパスが削除され、以前の状態に戻りません。

パッケージをアンインストールすると、環境のクリーンアップと復元がトリガーされます。

  1. アプリによって作成された変数はすべて削除されます。
  2. 変数が最初にアプリによって作成されたのではなく、アプリによって最後に変更された場合、その値は別のアプリによって設定された最後の値に復元されます。
  3. これらの 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 のスコープで、指定した環境変数の値を設定します。

適用対象