バージョン 2006 以降、 ShowMessageEx メソッドにカスタマイズ可能なダイアログ ボックスが表示されます。 このメソッドは IProgressUI::ShowMessage メソッドに似ていますが、新しい整数の結果変数 pResult も含みます。
構文
[IDL]
HRESULT ShowMessageEx(
BSTR pszText,
BSTR pszCaption,
ULONG uType,
INT *pResult
);
パラメーター
pszText
データ型: BSTR
Qualifiers: [in]
メッセージ ボックスの本文に表示されるテキスト。
pszCaption
データ型: BSTR
Qualifiers: [in]
メッセージ ボックスの Windows ヘッダーに表示されるテキスト。
uType
データ型: ULONG
Qualifiers: [in]
ボタンに指定できる次の値のいずれかに対応する値:
- 0 - OK
- 1 - OK/キャンセル
- 2 - 中止/再試行/無視
- 3 - はい/いいえ/キャンセル
- 4 - はい/いいえ
- 5 - 再試行/キャンセル
- 6 - キャンセル/再試行/続行
pResult
データ型: INT
Qualifiers: [out]
この変数の値は、標準の Windows メッセージ ボックスの戻り値です。
戻り値
HRESULT コード。 指定できる値には次の値が含まれます (ただしこれらに限定されません)。 このメソッドに固有の HRESULT 値は返されません。
S_OK メソッドは成功しました。
メッセージ ボックスに対するユーザーの応答を評価するには、 pResult パラメーターを使用します。
例
次の PowerShell スクリプト サンプルは、このメソッドの使用方法を示しています。
$Message = "Can you see this message?"
$Title = "Contoso IT"
$Type = 4 # Yes/No
$Output = 0
$TaskSequenceProgressUi = New-Object -ComObject "Microsoft.SMS.TSProgressUI"
$TaskSequenceProgressUi.ShowMessageEx($Message, $Title, $Type, [ref]$Output)
$TSEnv = New-Object -ComObject "Microsoft.SMS.TSEnvironment"
if ($Output -eq 6) {
$TSEnv.Value("TS-UserPressedButton") = 'Yes'
}
タスク シーケンスの [PowerShell スクリプトの実行 ] ステップで、次のようなスクリプトを使用できます。 ユーザーがカスタム ウィンドウで [はい] を選択すると、スクリプトによって、値が Yes のカスタム タスク シーケンス変数 TS-UserPressedButton が作成されます。 その後、このタスク シーケンス変数を他のスクリプトで使用したり、他のタスク シーケンス ステップの条件として使用したりできます。