PowerShell で GUI 開発(WinForms)とか。

こういうのね。Visual Studio 禁止とかスペック不足とか、非開発部門だけど開発したい!(というよりは、エンジニアじゃないけど、業務改善用のプログラム開発したい!かな)という方はいらっしゃるのかな?

test.bat

@echo off
powershell -NoProfile -ExecutionPolicy Unrestricted .\test.ps1

test.ps1

# 仕様として、dll の参照追加よりも、using 名前空間の方を先に記載しなくちゃいけない
using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# ビジュアルスタイルを適用(未記載の場合クラシック形式の表示)
[Application]::EnableVisualStyles()


# ラベルと入力欄
$lbl = New-Object Label
$lbl.Text = "名前:"
$lbl.Location = "0, 22"
$lbl.AutoSize = $True

$txt = New-Object TextBox
$txt.Name = "textbox1"
$txt.Text = "Hello, World!"
$txt.Location = "40, 20"

# 確認ボタン
$btn = New-Object Button
$btn.Text = "確認"
$btn.Size = "120, 40"
$btn.Location = "170, 10"

# ボタンのクリック
$button_Click = {
    ($sender, $e) = $this, $_
    $parent = ($sender -as [Button]).Parent -as [Form]
    $txt = [TextBox]$parent.Controls["textbox1"];
    [MessageBox]::Show("「" + $txt.Text + "」と入力しました!", "情報", "OK", "Information")
}
$btn.Add_Click($button_Click)

# フォーム
$f = New-Object Form
$f.Text = "Form1"
$f.Size = "360, 240"
$f.Controls.AddRange(@($lbl, $txt, $btn))
$f.ShowDialog()