業務改善!Windows PowerShell入門

Windows PowerShellで、とにかく楽をしたい!実際に仕事で楽になった事、便利になった事を紹介しつつ進めていきます。

PowerShell メッセージボックスを使い倒せ!

以前、PowerShellにおけるメッセージボックスについての記事を書いたところ好評であった。

よって、メッセージボックス関連の第2弾をお送りしたい。

 

▼前回のメッセージボックス関連の記事  

PowerShell メッセージボックスを表示しろ! - 業務改善!Windows PowerShell入門

 



さて、PowerShellでメッセージボックスをやろうと思っても、残念ながら、組み込みメソッドがない。(※特に準備せずともいきなり使えるもの)

だが、COMオブジェクトを利用をすれば、メッセージボックスが実装可能となる。

 

・どうやって実装するんや?!

以下の手順で、あっという間にできるゼ!

 

New-Objectコマンドレットを使用し、COMオブジェクトのインスタンスを作成する。
・ComObject(com)パラメータのProgIDとして、Wscript.Shellを指定する。
・Wscript.ShellのインスタンスPopupメソッド使用して、あとは使い倒す!

 

※COMとはMicrosoftが提供する部品化されたプログラムのことであり、アプリケーションに組み込むことができる。

 

$ws = New-Object -com Wscript.Shell
$ws.Popup("俺は高木ブーだ!")

 

f:id:acoustic_groove:20171220223414p:plain

 

だが、これは見た目があまりよろしくない。

タイトルが「Windows Script Host」とそのまんま出すのは、いけ好かないだゼ!

 

よって、Popupメソッドの引数と戻り値について、詳しく解説したい。

$ws.Popupと打ちこむと、以下のように「引数は4つ、戻り値がある」ということが分かる。

 

f:id:acoustic_groove:20171220223853p:plain

 

ではこれがどうなっているかだが、以下にすべてまとめた。 

 

・引数はどうなっとるんや?! 

 

  内 容
引数1 メッセージ
引数2 自動クローズ秒数
引数3 タイトル
引数4 表示するボタン

 

引数1はメッセージ内容だ。
・引数2は自動クローズ秒だ。0を指定すれば、ボタンを押すまで表示され続ける
1を指定すれば、1秒後に閉じる。
・引数3はタイトルだ。
・引数4は表示するボタンで、0~5のどれかを指定する。

 

 

・表示するボタン(引数4)の設定値はどうなっとるんや?! 

  設定値
OK 0
OK、キャンセル 1
中止、再試行、無視 2
はい、いいえ、キャンセル 3
はい、いいえ 4
再試行、キャンセル 5

 

 f:id:acoustic_groove:20171220232208p:plain

 

・戻り値はどうなっとるんや?! 

 

  戻り値
O K 1
キャンセル 2
中 止 3
再試行 4
無 視 5
は い 6
いいえ 7

 

※ただし、自動クローズをさせた場合は、-1が戻り値となる。

 


 

▼以下は検証用のソースである。

 

#COMオブジェクト Wscript.Shell
$ws = New-Object -com Wscript.Shell

#============================
# Popupメソッド
#----------------------------
# 引数1:メッセージ
# 引数2:自動クローズ秒数
# 引数3:タイトル
# 引数4:表示するボタン
#============================
# 戻り値
#----------------------------
# O K  :1
# キャンセル:2
# 中 止  :3
# 再試行  :4
# 無 視  :5
# は い  :6
# いいえ  :7
#============================


#表示ボタンと設定値(引数4)
#OK:0
$ws.Popup("元祖高木ブー伝説",0,"曲名",0)

#OK、キャンセル:1
$ws.Popup("元祖高木ブー伝説",0,"曲名",1)

#中止、再試行、無視:2
$ws.Popup("元祖高木ブー伝説",0,"曲名",2)

#はい、いいえ、キャンセル:3
$ws.Popup("元祖高木ブー伝説",0,"曲名",3)

#はい、いいえ:4
$ws.Popup("元祖高木ブー伝説",0,"曲名",4)

#再試行、キャンセル:5
$ws.Popup("元祖高木ブー伝説",0,"曲名",5)

 

だがしかし、インフォメーションやクエスチョンマークなどのアイコン設定ができないのは......

 

 

何だか寂しいゼ!

 


PowerShell、オーマイガっ!

ロリポップ!レンタルサーバー!はあなたの「やってみたい!」を応援します!
ロリポップ!なら、ホームページ、ブログ、ネットショップ…
これらが今すぐ、そして簡単にできちゃう!
マニュアルやライブチャットを完備しているので、ホームページ初心者でも安心。
これだけついてるのに月額100円(税抜)~ととってもお得。
もちろん無料のお試し期間も10日間あるので安心ですね。

▼ロリポップ!レンタルサーバーはこちら