PowershellでGUI(1)

Powershellに限らず、スクリプトを組むときに一時停止状態を作ることがよくあると思います。たとえば、「続行するには何かキーを入力してください」と表示させ、そこで一時停止させるというものです。ただ、コンソールに表示させるのもどうかと思ったりするので、メッセージボックスを表示してやると格好がつくというものです。

それには以下のように書きます。

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("続行するにはOKを押してください","確認",[System.Windows.Forms.MessageBoxButtons]::OK)

一行目のAdd-TypeコマンドレットでSystem.Windows.Formsというアセンブリを読み込んで、2行目でSystem.Windows.FormsのMessageBoxをShow(表示)させています。実際に実行するとメッセージボックスの表示ができます。

こうなると、OKボタンだけではなく、いろいろなボタンを配置したくなります。ちなみにOKとCancelを配置するには、

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("続行するにはOKを押してください","確認",[System.Windows.Forms.MessageBoxButtons]::OKCancel)

とすると以下のように表示されます。

YesとNoボタンの場合は以下の通り。

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("続行するにはOKを押してください","確認",[System.Windows.Forms.MessageBoxButtons]::YesNo)

その他のボタンは以下リンクが詳しい。

https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.messageboxbuttons?view=windowsdesktop-8.0

このようにすると、OKなりYesなりを押した場合はどうするとか条件分岐がしたくなります。それは次回に回します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です