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 還原 (該應用程式所做的最後一項變更,) 還原。
- A-la-笛卡應用程式 具有身分識別,但未安裝已封裝應用程式的方式。 沒有可靠的方法可偵測何時卸載 a-la-笛卡應用程式。 因此,雖然會追蹤由 a-la-笛卡應用程式所建立/寫入的變數,但不會在卸載應用程式時清除它。
屬性
AreChangesTracked |
取得值,指出是否追蹤環境變數變更。 |
IsSupported |
取得值,指出目前裝置/OS 版本是否支援 EnvironmentManager 。 |
方法
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的範圍內設定指定環境變數的值。 |