以 JScript 或 Visual Basic 撰寫的自定義動作,Scripting Edition (VBScript) 可以呼叫選擇性函式。 這些函式必須傳回下表所示的其中一個值。
| 傳回值 | 價值 | 描述 |
|---|---|---|
| msiDoActionStatusNoAction | 0 | 未執行動作。 |
| msiDoActionStatusSuccess | IDOK = 1 | 動作已順利完成。 |
| msiDoActionStatusUserExit | IDCANCEL = 2 | 使用者過早終止。 |
| msiDoActionStatusFailure | IDABORT = 3 | 無法復原的錯誤。 如果在剖析或執行 JScript 或 VBScript 期間發生錯誤,則傳回 。 |
| msiDoActionStatusSuspend | IDRETRY = 4 | 稍後要繼續的暫停序列。 |
| msiDoActionStatusFinished | IDIGNORE = 5 | 略過剩餘的動作。 不是錯誤。 |
請注意,Windows Installer 會將傳回值寫入記錄檔時,從所有動作轉譯傳回值。 例如,如果動作傳回值在記錄檔中顯示為1(一個),這表示動作傳回 msiDoActionStatusSuccess。 如需此轉譯的詳細資訊,請參閱 動作傳回值的記錄。
若要從文稿自定義動作傳回以外的值,您必須使用自定義動作的函式目標。 目標函式是在 CustomAction Table的 Target 資料行中指定。
下列腳本範例示範如何從 VBScript 自定義動作傳回成功或失敗。
Function MyVBScriptCA()
If Session.Property("CustomErrorStatus") <> "0" Then
'return error
MyVBScriptCA = 3
Exit Function
End If
' return success
MyVBScriptCA = 1
Exit Function
End Function
如果此 VBScript 內嵌在安裝套件 二進位數據表中, MyCA.vbs,則腳本的 CustomAction Table 專案如下:
| 行動 | 類型 | 源 | 目標 |
|---|---|---|---|
| MyCustomAction | 6 | MyCA.vbs | MyVBScriptCA |