PowerShell で画像付箋アプリを作ってみた
Posted on 2024年08月04日 (日) in 自作ツール
目次
どのようなアプリなのか
簡単に言うと「クリップボードの画像をウィンドウとしてデスクトップに貼り付ける」アプリです。
このアプリは以前 Python で作成した Yukis Army knife というソフトの「画像付箋」という機能としても作りましたが、今回少々用事があり PowerShell で作ってみました。
コード
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
Add-Type -AssemblyName System.Windows.Forms
if ([Windows.Forms.Clipboard]::ContainsImage()) {
$img = [Windows.Forms.Clipboard]::GetImage()
} else {
Write-Host "クリップボードに画像がありません。"
exit
}
$Form = New-Object System.Windows.Forms.Form
$Form.Text = "画像付箋"
$Form.TopMost = $true
$pic = New-Object System.Windows.Forms.PictureBox
$pic.Size = New-Object System.Drawing.Size($img.Width, $img.Height)
$pic.Image = $img
$pic.Location = New-Object System.Drawing.Point(0,0)
$pic.SizeMode = [System.Windows.Forms.PictureBoxSizeMode]::Zoom
$Form.Controls.Add($pic)
$Form.Add_SizeChanged({
$pic.Size = $Form.ClientSize
})
$Form.ClientSize = New-Object System.Drawing.Size($img.Width, $img.Height)
$Form.Add_Shown({$Form.Activate()})
[void] $Form.ShowDialog()
使い方
スクショ撮影や画像コピーをする
ps1 ファイルを起動する
画像がウィンドウとして表示される
注意点
このスクリプトを使っても上手くいかないときは、以下の方法で対策してみてください
ps1 ファイルの文字コードを「ANSI」にする
コマンドプロンプトで「powerShell -WindowStyle Hidden -ExecutionPolicy RemoteSigned -File "ps1 ファイル名"」で実行してみる
感想
正直 PowerShell で GUI を作れるとは知らなかったので驚きました。
ただ ps1 は bat と違って直接コマンドを実行できないので、bat から簡単に起動できるようにしたり、ショートカットを使ってタスクバーから起動できるようにするなど、使うには工夫する必要がありそうです。
何ができるのかはまだよく分かっていませんが、しばらく練習も兼ねてデスクトップ向けの簡易ツールは PowerShell で作ることになりそうです。