PowerShell 显示气球提示框
1、第一步, 托盘位于System.Windows.Forms的程序集下,所以首先我们要首先加载dll
[system.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')

2、第二步, 加载 Winform 程序集, 会输出一些额外的信息,我们可以使用Out-Null抑制输出
[system.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null

3、第三步, 创建托盘图标, 并在右下角显示
$balloon = New-Object System.Windows.Forms.NotifyIcon
$path = Get-Process -id $pid | Select-Object -ExpandProperty Path
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balloon.Icon = $icon
$balloon.BalloonTipIcon = 'Info'
$balloon.BalloonTipText = '脚本执行完毕'
$balloon.BalloonTipTitle = 'PowerShell tips'
$balloon.Visible = $true
$balloon.ShowBalloonTip(10000)

4、第四步, 上一步默认显示的图标的是powershell 的图标,我们可以选择更换图标,
我们从进程列表中获取程序的某个图标
$path = Get-Process | where MainModule -ne $null | select -First 1 Path
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path.Path)
$balloon.Icon = $icon
$balloon.BalloonTipIcon = 'Info'
$balloon.BalloonTipText = '脚本执行完毕'
$balloon.BalloonTipTitle = 'PowerShell tips'
$balloon.Visible = $true
$balloon.ShowBalloonTip(10000)

5、第五步, 自定义一个ico图标,指定路径即可
$path = "E:\DownLoad\browser\icon.ico"
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balloon.Icon = $icon
$balloon.BalloonTipIcon = 'Info'
$balloon.BalloonTipText = '脚本执行完毕'
$balloon.BalloonTipTitle = 'PowerShell tips'
$balloon.Visible = $true
$balloon.ShowBalloonTip(10000)
