よく利用するアプリの一覧をアイコンで表示してみたいと思い、PowerShellを使用してランチャーのような形で表示できないか試してみた。
早速コードを組んでみた。アプリのアイコンは問題なく抽出できたし、それをボタンに適用することでイメージに近いものができたと思う。
# アセンブリの読み込み
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# フォームの作成
$form = New-Object System.Windows.Forms.Form
$form.Text = "TEST"
$form.Size = New-Object System.Drawing.Size(250,250)
$IconButton = New-Object System.Windows.Forms.Button
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon("C:\Program Files (x86)\sakura\sakura.exe")
$h = $icon.Size.Height + 15
$w = $icon.Size.Width + 15
$IconButton.Height = $h
$IconButton.Width = $w
$IconButton.Image = $icon
$form.Controls.Add($IconButton)
# フォームを表示
$form.ShowDialog()
$icon.Dispose() # リソースの開放
適当に今回は「さくらエディタ」のアイコンを表示させてみた。
表示させたいアプリの一覧を設定ファイルか何かを読み込ませて、対象のアプリがあれば表示する。
というようなことができそうで夢が広がった。
PowerShellはWindows OSなら標準搭載されていて、特に環境構築なども必要ないので、
職場などの関係で自由にランチャーアプリをインストールできない場合とかに、自作で簡単に作れそうなので良いですね。