PowerShellはコマンドラインだけでなく、ちょっとしたGUI(フォーム画面)を作ることも可能です。「非エンジニアにも使いやすいツールを作りたい」と思ったときにとても便利です。
今回は、ボタン付きの簡単なウィンドウを作成する方法を紹介します。
GUI作成には「Windows Forms」を使う
PowerShellでは、.NET Framework
の機能を利用することで、Windowsアプリのような**ウィンドウ付きの画面(フォーム)**を表示できます。
まず、以下のようにして必要なアセンブリを読み込みます:
Add-Type -AssemblyName System.Windows.Forms
基本のGUIフォーム作成スクリプト
例:ボタンをクリックしてメッセージを表示する
Add-Type -AssemblyName System.Windows.Forms
# フォーム作成
$form = New-Object System.Windows.Forms.Form
$form.Text = "PowerShell GUIサンプル"
$form.Size = New-Object System.Drawing.Size(300,200)
# ボタン作成
$button = New-Object System.Windows.Forms.Button
$button.Text = "クリック!"
$button.Location = New-Object System.Drawing.Point(100,60)
$button.Size = New-Object System.Drawing.Size(100,30)
# ボタンクリック時の動作
$button.Add_Click({
[System.Windows.Forms.MessageBox]::Show("こんにちは!PowerShellです")
})
# フォームにボタンを追加
$form.Controls.Add($button)
# フォーム表示
$form.ShowDialog()
このスクリプトを実行すると、「クリック!」というボタンがあるウィンドウが表示されます。ボタンを押すと、メッセージボックスがポップアップします。
入力ボックス付きのフォーム例
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Text = "名前入力"
$form.Size = New-Object System.Drawing.Size(300,200)
$label = New-Object System.Windows.Forms.Label
$label.Text = "名前を入力してください:"
$label.Location = New-Object System.Drawing.Point(20,20)
$label.Size = New-Object System.Drawing.Size(250,20)
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(20,50)
$textBox.Size = New-Object System.Drawing.Size(240,20)
$button = New-Object System.Windows.Forms.Button
$button.Text = "表示"
$button.Location = New-Object System.Drawing.Point(100,100)
$button.Add_Click({
[System.Windows.Forms.MessageBox]::Show("こんにちは、" + $textBox.Text + " さん!")
})
$form.Controls.Add($label)
$form.Controls.Add($textBox)
$form.Controls.Add($button)
$form.ShowDialog()
この例では、名前を入力してボタンを押すと、あいさつが表示されるGUIツールになります。
GUIスクリプトの活用例
- ファイル選択や出力先を指定するツール
- 簡易的なランチャー(定型処理の自動実行)
- 入力値に応じて処理を変える簡単な業務アプリ
まとめ
PowerShellでGUIを作ることで、コマンドに不慣れなユーザーにも優しいツールを作成できます。Windows Formsを使えば、複雑なプログラミングをしなくても、実用的なミニアプリを作れるのが魅力です。
次回は、フォルダ内のファイルをGUIで操作する簡易アプリの作り方を紹介予定です!
コメント