logo-sm

お問い合わせは Webフォームから

ブログ

PowerShellでGUI表示をする

2020.12.07

新規にアプリをインストールすることが出来ない環境下において、PowerShellはかなり手軽なスクリプト言語です。
PowerShellといえばコマンドプロンプトのようなものをイメージする事がほとんどだと思いますが、
今回はあまり知られていない(かもしれない)GUI表示について紹介したいと思います。

(1).NetFrameworkを用いてWindowsフォームを作成する

まずは画面を作ってみましょう。「Windows PowerShell ISE」を起動して下記の内容を入力しF5を押します。
※「Windows PowerShell ISE」はWindowsのスタートメニュー内の「Windows PowerShell 」にあります。

#アセンブリの読み込み
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

#フォームの設定
$Form = New-Object System.Windows.Forms.Form
$Form.Size = New-Object System.Drawing.Size(800,600)
$Form.Text = "PowerShellでGUI表示をする"

#フォームの表示
$Form.Add_Shown({$Form.Activate()})
[void] $Form.ShowDialog()

すると、このような画面が表示されたかと思います。

(2)ボタンやテキスト欄を追加してみる

このままでは味気ないので、この画面にもう少し色々なものを足してみましょう。
先ほどのコード内の「フォームの設定」と「フォームの表示」の間に以下のコードを付け足してください。

#ボタンの設定
$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Point(100,50)
$Button.Size = New-Object System.Drawing.Size(200,100)
$Button.Text = "ボタン"
$Form.Controls.Add($Button)

#テキストボックスの設定
$TextBox = New-Object System.Windows.Forms.Textbox
$TextBox.Location = New-Object System.Drawing.Point(100,200)
$TextBox.Size = New-Object System.Drawing.Size(400,100)
$TextBox.Text = "サンプル"
$TextBox.Multiline = $True
$Form.Controls.Add($TextBox)

F5で実行すると最初の画面の中にボタンとテキストボックスが現れたと思います。

Locationが表示位置を、Sizeが描画サイズを表しています。
テキストボックスのMultilineは改行を許可するかどうかの設定になります。
ボタンやテキストボックスを準備した後は「$〇〇〇.Controls.Add」で最初に作成したフォームに追加をしないと表示されません。

(3)ボタンの挙動を設定する

せっかくなのでボタンに動きを付けてみましょう。
ひとまず、ボタンを押すとテキストボックスに今日の日付が出る、といった簡単なものを作成してみます。

以下のコードを追加してみてください。

function Btn_Click(){
$TextBox.Text = Get-Date
}

これは(2)で作成したテキストボックスに「Get-Date」で取得した現在の日付を入れる、という内容の関数です。
次にこの関数の呼び出しをボタンに付与しましょう。

$Button.Add_Click({Btn_Click})

これは「ボタンの設定」と「フォームの表示」の間に記載しましょう。
F5で実行してボタンを押してみましょう。テキストボックスの内容が現在の日付で上書きされたと思います。

ちょっとしたツールを作成する際、画面表示された方が分かりやすい場合に手軽に使えるので、機会があればお試しください~

最後に
今後3年の計画としては、クラウドを活用できるクラウドインテグレーターとして地位を確立し、クラウドの価値を多くの方に感じていただきたいと考えております。
この目標に向け、当社は経営理念、ビジョンを守りながら柔軟に組織を変化させています。
この変化の多いIT業界で ”ワクワク” を感じていただける方!! ご連絡をお待ちしております!

関連記事

  • WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。
    当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけど […]

    2024.04.08

  • VSCode (内のPowerShell)でアドレス設定を切り替え!
    【経緯】 最近携わった案件で大量のNW機器のキッティングをした際、それぞれにSSHでの接続性などを確認するテス […]

    2023.10.13

  • PaloaltoでWindows NTPサーバに同期
    【事象と対処法】 オフライン環境のPaloaltoでNTPの機能確認をする必要があり、Windows標準のNT […]

    2023.10.13

  • パートナー

  • 人材育成・採用情報