logo-sm

お電話はこちら 03-6912-0139

ブログ

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で実行してボタンを押してみましょう。テキストボックスの内容が現在の日付で上書きされたと思います。

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

関連記事

  • 【報告】当社初!オンライン交流会を開催。その時の様子や感想・考察から改善までお伝えします。
    目次 はじめに オンライン交流会を開催した背景 交流会の内容について ①好きな食べ物・飲み物を飲食しながら雑談 […]

    2021.10.28

  • https(SSL化)してあるのにhttpがgoogle検索にindexされていた時の対処法
    最近私のWordpressのサイトでhttps(SSL化)しているにもかかわらず httpのURLがGoogl […]

    2021.09.29

  • WordPressで使っていないCSSを削除する方法
    ファイルを軽くするために使っていないcssを消す必要がある場合があります。 今回ある仕事で大量にページを削除し […]

    2021.09.29

  • パートナー

  • 人材育成