WSLからWindowsに通知
PowerShell スクリプト
code:notify.ps1
param(
$CallBack = ''
)
Add-Type -AssemblyName System.Windows.Forms, System.Drawing
function Show-NotifyIcon {
param(
)
New-Object -TypeName Windows.Forms.NotifyIcon -Property @{
BalloonTipText = $Prompt
BalloonTipTitle = $Title
Text = $Title
Visible = $true
}
# イベント定義
$notifyIcon.add_BalloonTipClicked( $CallBack )
$notifyIcon.ShowBalloonTip( $timeout )
# そのままだとイベントが走らない&すぐに消えてしまうので適当wait
Start-Sleep -Milliseconds 1
}
$notifyIcon.Dispose()
}
$parameters = $MyInvocation.BoundParameters
$parameters.CallBack = scriptblock::Create( $CallBack ) Show-NotifyIcon @parameters
C:/Users/Foo/Desktop/notify.ps1 に配置するとする
$ /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Sta -NoProfile -WindowStyle Hidden -ExecutionPolicy RemoteSigned -File c:/Users/Foo/Desktop/notify.ps1 "メッセージ" "タイトル"
-File に渡すファイルパスは powershell 側から見たパスなので /mnt/c/... ではなくなることに注意