Session.Message 方法
Session 物件的 Message 方法會執行任何啟用的記錄作業,並將執行延遲至與引擎相關聯的 UI 處理程式物件。 記錄可能會針對各種訊息類型選擇性地啟用。 請參閱 EnableLog 方法。
如果記錄欄位 0 包含格式化字串,則會用來格式化其他欄位中的數據。 否則,如果訊息是錯誤、警告或使用者訊息,則會嘗試使用訊息類型記錄的欄位 1 中找到的錯誤號碼,在目前資料庫的 Error 數據表中尋找訊息範本並傳回值。
語法
Session.Message(
kind,
record
)
參數
-
種類
-
kind 參數必須是下列其中一個值。 若要顯示具有按鈕和圖示的消息框,請將 MessageBox 和 MessageBoxEx 所使用的標準消息框樣式新增至 msiMessageTypeError、msiMessageTypeWarning 或 msiMessageTypeUser,以計算種類值。 如需詳細資訊,請參閱下面的一節。
持續性 意義 - msiMessageTypeFatalExit
- &H00000000
過早終止,可能造成記憶體不足。 - msiMessageTypeError
- &H01000000
格式化的錯誤訊息 [1] 是 Error 資料表中的訊息編號。 - msiMessageTypeWarning
- &H02000000
格式化的警告訊息 [1] 是錯誤數據表中的訊息編號。 - msiMessageTypeUser
- &H03000000
使用者要求訊息 [1] 是錯誤數據表中的訊息號碼。 - msiMessageTypeInfo
- &H04000000
記錄的資訊訊息,不會顯示。 - msiMessageTypeFilesInUse
- &H05000000
使用中需要取代的檔案清單。 - msiMessageTypeResolveSource
- &H06000000
要求以判斷有效的來源位置。 - msiMessageTypeOutOfDiskSpace
- &H07000000
磁碟空間不足訊息。 - msiMessageTypeActionStart
- &H08000000
動作開頭、[1] 動作名稱、[2] description、[3] TEMPLATE for ACTIONDATA 訊息。 - msiMessageTypeActionData
- &H09000000
動作數據。 記錄欄位會對應至 ACTIONSTART 訊息的範本。 - msiMessageTypeProgress
- &H0A000000
進度列資訊。 請參閱下方記錄欄位的描述。 - msiMessageTypeCommonData
- &H0B000000
若要啟用 [取消] 按鈕,請將 [1] 設定為 2,並將 [2] 設定為 1。
若要停用 [取消] 按鈕,請將 [1] 設定為 2,並將 [2] 設定為 0 -
記錄
-
包含訊息特定欄位的必要 Record 物件。
傳回值
常數 | 值 |
---|---|
|
-1 |
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
備註
訊息記錄欄位
下列描述當 msiMessageTypeProgress 傳遞為訊息類型時,記錄欄位定義。
欄位 1 指定進度訊息的類型。 其他欄位的意義取決於此欄位中的值。 可以設定為欄位 1 的可能值如下所示。
訊息名稱 | 值 | 欄位 1 描述 |
---|---|---|
MasterReset | 0 | 重設進度列,並設定列中預期的刻度總數。 |
ActionInfo | 1 | 提供目前動作所傳送之進度訊息的相關信息。 |
ProgressReport | 2 | 遞增進度列。 |
ProgressAddition | 3 | 可讓動作 (例如 CustomAction) 將刻度新增至進度列的預期進度總數。 |
Field 2 的意義取決於 Field 1 中的值,如下所示。
欄位 1 值 | 欄位 2 描述 |
---|---|
0 | 進度列中預期的刻度總數。 |
1 | 進度列會針對每個 ActionData 訊息行動的刻度數目。 如果欄位 3 為 0,則會忽略此欄位。 |
2 | 進度列已移動的刻度數目。 |
3 | 要新增至預期進度總計的刻度數目。 |
Field 3 的意義取決於 Field 1 中的值,如下所示。
欄位 1 值 | 欄位 3 值 | 欄位 3 描述 |
---|---|---|
0 | 0 | 向前進度列(由左至右) |
1 | 向後進度列(由右至左) | |
1 | 0 | 目前的動作會傳送明確的 ProgressReport 訊息。 |
1 | 每次傳送 ActionData 訊息時,以 Field 2 中指定的刻度數遞增進度列。 | |
2 | 未使用 | |
3 | 未使用 |
Field 4 的意義取決於 Field 1 中的值,如下所示。
欄位 1 值 | 欄位 4 值 | 欄位 4 描述 |
---|---|---|
0 | 0 | 執行正在進行中。 在此情況下,UI 可以計算並顯示剩餘的時間。 |
1 | 建立執行腳本。 在此情況下,UI 可能會顯示訊息,以在安裝程式完成準備安裝時等候。 | |
1 | 未使用 | |
2 | 未使用 | |
3 | 未使用 |
顯示消息框
若要顯示具有按鈕和圖示的消息框,請將 MessageBox 和 MessageBoxEx 所使用的標準消息框樣式新增至 msiMessageTypeError、msiMessageTypeWarning 或 msiTypeUser,以計算種類值。 VBScript 的可用按鈕選項為 vbOKOnly (MB_OK)、vbOKCancel (MB_OKCANCEL)、vbAbortRetryIgnore (MB_ABORTRETRYIGNORE)、vbYesNoCancel (MB_YESNOCANCEL)、vbYesNo (MB_YESNO)和 vbRetryCancel (MB_RETRYCANCEL)。 VBScript 的可用圖示選項為 vbCritical (MB_ICONERROR)、vbQuestion (MB_ICONQUESTION)、vbExclamation (MB_ICONWARNING)和 vbInformation (MB_ICONINFORMATION)。
例如,下列呼叫會傳送 具有 vbExclamation 圖示和 vbYesNo 按鈕的 msiMessageTypeError 訊息。
Session.Message &H01000034, record
如果自定義動作呼叫 Message 方法,自定義動作應該能夠由用戶處理取消,而且應該傳回 msiDoActionStatusUserExit。
需求
需求 | 值 |
---|---|
版本 |
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer |
DLL |
|
IID |
IID_ISession定義為 000C109E-0000-0000-C000-00000000000046 |