Windows にはデスクトップ通知という仕組みが備わっています。何かことあるごとに右下に表示されるアレです。自作のコマンドでもアレがあると何か完了した時などに見逃すことが少なくなり便利です。このデスクトップ通知を実現し、使いまわしやすい PowerShell スクリプトとそれを呼び出すコマンド例を紹介します。
ソースコードは次です。
# notify.ps1 # 引数を受け取る $notificationTitle = $args[0] $notificationMessage = $args[1] # NotifyIconオブジェクトを作成 Add-Type -AssemblyName System.Windows.Forms $notification = New-Object System.Windows.Forms.NotifyIcon # アイコンを設定 $notification.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon((Get-Command powershell).Path) # バルーン チップの内容を設定 $notification.BalloonTipTitle = $notificationTitle $notification.BalloonTipText = $notificationMessage $notification.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Info # バルーン チップを表示して通知を行う $notification.Visible = $true # 5000ミリ秒表示 $notification.ShowBalloonTip(5000)
これを次の様に呼び出すと画像の通りの通知が出ます。
powershell -File ".\notify.ps1" "コマンド終了" "コマンドが終わりました。" # PowerShell上から実行するなら↓でもOK .\notify.ps1 "コマンド終了" "コマンドが終わりました。"
引数でタイトルとメッセージを指定する形です。自作のコマンドやバッチファイルなどから簡易にデスクトップ通知を使いたい時などは、こんな感じの通知スクリプトをどこかに置いておくかコピーするなりして呼び出すと便利です。