Windows下从命令行(Powershell/CMD)发送内容到系统通知中心
01 前言
在平时写脚本的时候,将日志
等信息直接输出到控制台
固然是最直接的,而如果是一些后台执行的任务,不需要时刻关注运行细节但是又想知道一些大致的情况,那么将信息输出到一个“消息中心”就是比较好的选择。
微软从Windows 8
引入了 Toast
通知,但是只是短暂弹出窗口,而在Windows 10
引入了交互式 Toast
,还引入了操作中心,在该中心,通知将持续多天1。
既然已经有了现成的,直接用就可以。查了一些资料,C++
,C#
,Python
,Rust
实现的版本都有(C++
和C#
的方式,可以参考官方文档实现),最后使用了Rust
的方案,比较简单。
02 正文
环境:
Windows 11 64-bit
rustup 1.27.1
cargo 1.82.0
toastify 0.5.4
(1)安装
直接运行命令安装:
cargo install toastify
安装完成后,会在%CARGO_HOME%\bin
中有对应的可执行文件:toastify.exe
如果环境配置没问题,就可以直接在Powershell
或者CMD
中愉快使用了。
(2)使用
- 查看帮助:
toastify -h
- 或者查看发送的格式
toastify send -h
- 发送消息
toastify send "提示标题" "提示的内容,今天周五太高兴了~"
效果:
【查看帮助】
【发送消息内容】
需要注意的是:
如果发送了消息之后没有效果(也就是右下角没有弹出提示),请检查相关设置是否已开启:
(1)选择 开始 > 设置 > 系统 > 通知
(2)选择“通知” ,将其打开
(3)确保 “请勿打扰” 是关闭的,或者当前时间不在“请勿打扰”设置的范围内
(3)扩展
这个toastify
使用了notify-rust
库(跳转),所以如果想定制更多的功能,也可以直接使用notify-rust
库进行开发。
根据微软官方文档,这种Toast
通知还可以加入图片
、声音
、按钮
,甚至设置跳转链接
等,如图效果:
03 后记
当然,除了用系统内置的通知中心,还可以自行实现类似的功能,本质上就是实现一个右下角的弹窗——像以前各种流氓软件经常干的事就是在右下角冷不防弹个广告。
比如,C#
版本的,发现一个还不错的库,里面的Notifications
模块:
ApeFree.ApeForms。
效果就是这样(右下角弹窗,默认有一定透明度,鼠标移动上去就变完全不透明,移开就变透明,一段时间自动消失,新的消息窗口可以增加在前面或者后面,还可增加图片,自定义按钮等):
如果是Windows XP/7
系统用户,还可以考虑这个方案:notifu。
如果是Python
用户,可以考虑这个方案:win11toast
参考 ↩︎