メッセージボックスを表示する

スクリプトの途中で MessageBox を使う方法を紹介します。MessageBox を Show すると、そこでユーザがボタンを選択するまで処理が中断するのでシェルスクリプトの意味が薄れてきます。なるべく乱用しないようにしましょう。

下記のサンプルにおいて $btn, $icn は、いろいろな値が選べるので MSDN などでご確認ください。ここで指定する値は今後 Windows のバージョンが上がって、増える場合もあれば減る場合もあります。

どのボタンが押されたかは MessageBox::Show の戻り値を評価します。

[void][System.Reflection.Assembly]::LoadWithPartialName( "System.Windows.Forms" )

# 引数を決定して MessageBox を表示する.
$msg = "my_message"
$cap = "my_caption"
$btn = "YesNoCancel" # MSDN などで確認すること.
$icn = "Warning" # MSDN などで確認すること.
$dfb = "Button2"
$dr = [System.Windows.Forms.MessageBox]::Show( $msg, $cap, $btn, $icn, $dfb )

# MessageBox::Show の戻り値を評価する.
if ( $dr -eq [System.Windows.Forms.DialogResult]::Yes )
{
    Write-Host( "You push [Yes]." )
}
elseif ( $dr -eq [System.Windows.Forms.DialogResult]::No )
{
    Write-Host( "You push [No]." )
}
elseif ( $dr -eq [System.Windows.Forms.DialogResult]::Cancel )
{
    Write-Host( "You push [Cancel]." )
}
else
{
    Write-Host( "unknown button." )
}

下記のような MessaegBox が表示されます。