WriteEnvironmentStrings 動作
WriteEnvironmentStrings 巨集指令會修改環境變數的值。
執行 WriteEnvironmentStrings 巨集指令或 RemoveEnvironmentStrings 動作 時,安裝程式不會變更安裝環境變數。 在 Windows 2000、Windows Server 2003、Windows XP 和 Windows Vista 上,此資訊會儲存在登錄中,並傳送 WM_SETTINGCHANGE 訊息,以在安裝完成時通知系統變更。 另一個程式可以透過處理這些訊息來接收變更的通知。 如果系統重新開機擱置中,則不會傳送任何訊息。 套件可以使用 MsiSystemRebootPending 屬性來檢查系統重新開機是否擱置中。
安裝程式只會在安裝或重新安裝元件期間執行 WriteEnvironmentStrings 動作,並且只在移除元件期間執行 RemoveEnvironmentStrings 動作 。
值會根據選取主要動作和修飾詞來寫入或移除。 下列 ActionData Messages 一節會說明這些訊息。 請注意,根據指定的動作,WriteEnvironmentStrings 可能會移除變數,而 RemoveEnvironmentStrings 可能會根據 Environment 資料表的撰寫來新增變數。
序列限制
InstallValidate 巨集指令必須在 RemoveEnvironmentStrings 動作之前執行。 由於 WriteEnvironmentStrings 巨集指令和 RemoveEnvironmentStrings 動作永遠不會在安裝或移除元件期間套用,因此不會限制其相對順序。
ActionData 訊息
欄位 | 動作資料的描述 |
---|---|
[1] | 要修改的環境變數名稱。 |
[2] | 環境變數值。 |
[3] | 這是位旗標的欄位,指定要執行的動作。 只包含主要動作的一個位。 此欄位中可能包含一個以上的修飾詞位。 請參閱下列位旗標描述。 |
位值 | 主要動作的描述 |
---|---|
0x1 | 設定。 在所有情況下設定環境變數的值。 如果這個位與 Append 或 Prefix 修飾詞位結合,動作會將值新增至變數中的任何現有值。 |
0x2 | 設定。 如果變數不存在,請設定值。 如果這個位與 Append 或 Prefix 修飾詞位結合,動作會將值新增至變數中的任何現有值。 |
0x4 | 移除。 從變數中移除值。 如果這個位與 Append 或 Prefix 修飾詞位結合,如果值存在,就會從現有的字串中移除此值。 |
位值 | 修飾詞的描述 |
---|---|
0x20000000 | 如果設定此位,動作會套用至電腦環境變數。 如果未設定此位,動作會套用至使用者的環境變數。 |
0x40000000 | Append。 這個位是選擇性的。 請勿同時設定 Append 和 Prefix 修飾詞。 |
0x80000000 | 首碼。 這個位是選擇性的。 請勿同時設定 Append 和 Prefix 修飾詞。 |