2010年5月15日土曜日

Windows Power Shellにおいて、ウィンドウのメッセージボックスを表示する方法

今回の記事は、Windows Power Shellにおいて、ウィンドウを使ったメッセージボックス(ダイアログ)を表示する方法についてです。

Windows PowerShellといえば、ご存知、Windows 7では標準になっている超強力コマンド環境ですが、ウィンドウを使ったメッセージボックスを表示する事も可能です。

それにはまず、ウィンドウを司るアセンブリをメモリに読み込んでおく必要があります。
対話的にコマンド入力でも構いませんが、毎回やるのは大変。
Windows Power Shellが起動した時に自動でやってしまうように設定しておくのが良いかと思います。

標準では、自分のホームディレクトリのマイドキュメントのWindowsPowerShellディレクトリにある「Microsoft.PowerShell_profile.ps1」に以下のコマンドを記述しておけば良いです。

#Windowsフォームのロード
[Void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms");
Write-Output ("Windows.Formsがロードされました。");


これで、ウィンドウにまつわる処理が書けるようになりました。

メッセージボックスは
[Windows.Forms.MessageBox]::Show("内容","タイトル");

これだけでOKです。

ただ、実行後にOKってテキストが返されてしまうのと、やや長いんで、以下のようなコマンドを書いてしまうと良いでしょうね。

#--------------------------------------
#メッセージボックス
#--------------------------------------
function global:MessageBox(
[string]$p_value = ""
)
{
[Void][Windows.Forms.MessageBox]::Show($p_value,"WindowsPowerShell(64bit)");
}


これで単にMessageBox "内容";
だけで良くなります。

実行すると、ダイアログでメッセージが表示されるようになります。