powershell实现发送win10系统通知
一、实现方式是使用系统自带的类NotifyIcon
关于Notify类的属性和使用方法可以查阅NotifyIcon官方文档,这主要讲一下用到的几个变量和方法。
1. Icon
Icon只支持 .ico
格式的图标,属于自定义图标,只有当 BalloonTipIcon
的值为 None
时才生效。
2. BalloonTipIcon
气球状提示上显示的图标设置值,查阅官方文档ToolTipIcon的枚举值只有:
Error: 错误图标、Info:信息图标、None:不是标准图标、Warning:警告图标
3. BalloonTipTitle
气球状提示的标题
4. BalloonTipText
气球状提示上显示的文本
5. Visible
通知区域是否显示图标
6. ShowBalloonTip
通知栏显示时长
二、代码示例
# 源码部分
# 取出命令行参数
[CmdletBinding()]
Param(
[string]$t = '系统通知',
[string]$d = ' ',
[string]$s = 'Info'
)
# 引入对应的命令空间类
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# 构造一个NotifyIcon类的对象
$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon
$objNotifyIcon.Icon = "xxxx\ico\success.ico"
# BalloonTipIcon 支持的值有 "Error" "None" "Info" "Warning"
$objNotifyIcon.BalloonTipIcon = $s
$objNotifyIcon.BalloonTipTitle = $t
$objNotifyIcon.BalloonTipText = $d
$objNotifyIcon.Visible = $True
$objNotifyIcon.ShowBalloonTip(10000)
#通知后自动关闭
$objNotifyIcon.Dispose()
# ps执行脚本
.\notice.ps1 -t 这是通知标题 -d 这是一条测试通知的详情,请查看 -s None
截图:
如果遇到通知中有乱码可参考另一篇博客解决