2015-06-09

PowerShellでMessageBoxを使用する

PowerShellをもっとたくさんの人に使っていただき、その方々の作業効率が向上することを願って、PowerShellの使い方を発信していくことにしました。

Web検索から辿り着いてこられた方々のお役に立てれば幸いです。

今回は「MessageBox (メッセージボックス)」について書いていきます。

メッセージボックスは処理が終わったタイミングや確認メッセージを表示させたい時など、なにかとよく使うものなので、ぜひ覚えていってください!

ここからメッセージボックスを表示させる方法を記述します。

---ここから------------------------------------------------------------------------------------

# アセンブリの読み込み
Add-Type -Assembly System.Windows.Forms

# メッセージボックスの表示
[System.Windows.Forms.MessageBox]::Show("ここにメッセージ", "タイトル")

---ここまで------------------------------------------------------------------------------------

 上の内容をコピーして、PowerShell ISEを起動し、貼り付けたあと、[スクリプトを実行(F5)]を押してみてください。


この画像と同じものが表示されれば成功です!


それでは解説していきます。
(文頭に#が付いているものはコメントを表します。コメントについては特に解説しません)

◆1行目
Add-Type -Assembly System.Windows.Forms

PowerShellでMessageBoxを使用するには、.NET Frameworkライブラリ内のSystem.Windows.Forms名前空間におけるMessageBoxクラスを利用します。
このMessageBoxクラスを含んでいるアセンブリを1行目でロードしています。
要するに、メッセージボックスを使用するための準備のようなものです。
この一文がないと使用できませんので、先に必ず記述する必要があります。
但し、1つのスクリプトファイル上で複数のメッセージボックスを使用する場合でも、この記述は一度でOKです。


◆2行目
[System.Windows.Forms.MessageBox]::Show("ここにメッセージ", "タイトル")

この文の基本型は次の通りとなります。
 [System.Windows.Forms.MessageBox]::Show("A", "B", "C", "D","E")

このA~Eは引数であり、それぞれを指定することによって、ボタンの種類を変えたり、アイコンを表示するなどのオプション的な働きがあります。

A… [第一引数] メッセージボックス内に表示する文字列を指定する           
B… [第二引数] メッセージボックスのタイトルを指定する           
C… [第三引数] メッセージボックス内に表示するボタンを指定する           
D… [第四引数] メッセージボックス内に表示するアイコンを指定する           
E… [第五引数] 第三引数で指定したボタンのうち、デフォルトで選択状態にするボタンを指定する           

<ボタンの種類>
 1.OK   
 2.OKCancel   
 3.AbortRetryIgnore   
 4.YesNoCancel   
 5.YesNo   
 6.RetryCancel

<アイコンの種類>
 1.None
 2.Hand
 3.Error
 4.Stop
 5.Question
 6.Exclamation
 7.Warning
 8.Asterisk
 9.Information

これだけではわかりにくいと思いますので、いくつか例を記述します。

●例1
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("メッセージボックスのテスト", "ここがタイトル", "AbortRetryIgnore", "Warning","button2")

●例1の結果



例2
Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("メッセージボックスのテスト", "ここがタイトル", "YesNoCancel", "Hand","button3")

●例2の結果


いかがでしょうか?
画像と同じ結果が表示されましたでしょうか?

あとはご自身で、ボタンの種類を変えてみたり、アイコンの種類を変えてみたり、いろいろ試してみてください!


メッセージボックスは様々な場面で使えると思いますので、ぜひ活用してください。

=======================================================================
本投稿は筆者が独自に調査したものを投稿しているため、間違い等もあるかと
思いますので、ご理解の程、宜しくお願い致します。
なお、本投稿に関する疑問や質問には可能な限りお答えさせていただきます。
お気軽にコメントやメールをお送りください。
メール:tkk-powershell@gmail.com
また、間違いのご指摘・アドバイス等も歓迎いたします。
=======================================================================
Google+、Twitterで更新情報をお届けしています!
ぜひフォローをお願い致します!           
=======================================================================
スポンサーリンク


3 件のコメント:

  1. ボタンの種類は、数字の 0~5で指定ができました。最初、数字で指定する前提で番号があったのかなって思ったのですが、単に説明する順番の数字だったのですね。

    返信削除
  2. フォームからメッセージボックスを表示させると、
    表示していたフォームが消えてしまいますが、どうすればいいでしょうか?

    またメッセージボックスでの操作の後、再度フォームを表示する方法がありましたら教えてほしいです。

    返信削除
    返信
    1. コメントありがとうございます。管理人です。
      申し訳ありませんが、文面だけでは状況・原因を判断することは難しいと思われます。
      よって、大変恐縮ですが、問題の発生しているスクリプトを見せていただけないでしょうか。
      コメントの返信か、tkk.powershell@gmail.comへ直接メールいただいても構いません。
      可能な限り検証させていただきます。
      ご検討、よろしくお願いいたします。

      削除

疑問・質問・リクエスト お気軽にどうぞ (^O^)/