使用NotifyIcon.ShowBalloonTip显示通知无响应的解决方法求助
解决PowerShell中System.Windows.Forms.NotifyIcon.ShowBalloonTip无响应的问题
你的脚本无法显示气泡提示的核心原因是未为NotifyIcon实例设置Icon属性——Win10/Win11对NotifyIcon的显示要求进行了调整,必须关联有效图标才能触发气泡提示。以下是修复后的完整代码:
Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing # 显式添加更稳妥,部分系统可省略 $NotifyIcon = [System.Windows.Forms.NotifyIcon]::new() # 为NotifyIcon指定图标,这里使用系统内置的信息类图标 $NotifyIcon.Icon = [System.Drawing.SystemIcons]::Information # 显式使用ToolTipIcon枚举值替代字符串,避免隐式转换问题 $NotifyIcon.ShowBalloonTip(5000, 'Title', 'Balloon Tip Text', [System.Windows.Forms.ToolTipIcon]::Info) # 脚本执行完毕后清理资源,防止托盘图标残留 Start-Sleep -Seconds 5 $NotifyIcon.Dispose()
关键细节说明:
- 必须设置Icon:可以使用系统内置图标(
System.Drawing.SystemIcons包含Information、Warning、Error等选项),也可以指定本地图标文件:$NotifyIcon.Icon = [System.Drawing.Icon]::FromFile("C:\your-icon-path.ico") - 枚举值替代字符串:原代码中最后一个参数用
'Info'字符串存在隐式转换风险,显式使用[System.Windows.Forms.ToolTipIcon]::Info更可靠 - 清理资源:调用
Dispose()可以避免图标在系统托盘残留,否则需要关闭PowerShell进程才能清除残留图标
内容的提问来源于stack exchange,提问作者jeremywat
相关产品推荐
相关产品推荐

