Windows下从命令行(Powershell/CMD)发送内容到系统通知中心

embedded/2024/11/30 9:56:40/

Windows下从命令行(Powershell/CMD)发送内容到系统通知中心

01 前言

在平时写脚本的时候,将日志等信息直接输出到控制台固然是最直接的,而如果是一些后台执行的任务,不需要时刻关注运行细节但是又想知道一些大致的情况,那么将信息输出到一个“消息中心”就是比较好的选择。
微软从Windows 8 引入了 Toast 通知,但是只是短暂弹出窗口,而在Windows 10 引入了交互式 Toast,还引入了操作中心,在该中心,通知将持续多天1
既然已经有了现成的,直接用就可以。查了一些资料,C++C#PythonRust实现的版本都有(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。
效果就是这样(右下角弹窗,默认有一定透明度,鼠标移动上去就变完全不透明,移开就变透明,一段时间自动消失,新的消息窗口可以增加在前面或者后面,还可增加图片,自定义按钮等):
效果2

如果是Windows XP/7系统用户,还可以考虑这个方案:notifu。

如果是Python用户,可以考虑这个方案:win11toast


  1. 参考 ↩︎


http://www.ppmy.cn/embedded/141713.html

相关文章

【Git】:分支管理

目录 理解分支 创建分支 切换分支 合并分支 删除分支 合并冲突 分支管理策略 快进合并 正常合并 bug 分支 总结 理解分支 在版本控制系统中,分支是一条独立的开发线路。它允许开发者从一个主要的代码基线(例如master分支)分离出来…

Spring Boot开发——整合JPA配置多数据源

文章目录 1. 添加依赖2. 配置数据源3. 创建数据源配置类4. 创建JPA配置类5. 创建第二个数据源的JPA配置类6. 创建实体类和Repository7. 使用多数据源8. 测试结论在现代的企业应用中,经常需要同时连接多个数据库。这可能是因为应用需要访问不同的数据库,或者是为了分离读写操作…

批量生成不同用户的pdf 文件(html样式)

技术 selenium thymeleaf itextpdf chromedriver 使用thymeleaf 将动态数据替换 使用selenium chromedriver 进行js &#xff0c;css等逻辑运算后渲染视图 使用itextpdf 将html 转为pdf 文件 html模板 <!DOCTYPE html> <html xmlns:th"http://www.thymeleaf…

【bug】AttributeError: module ‘openai‘ has no attribute ‘error’

【bug】AttributeError: module ‘openai’ has no attribute error’ 环境 openai 1.12.0详情 在处理 openai 请求异常的时候弹出该错误。 import openai# 错误 except openai.error.RateLimitError as e:xxx原因是新版 openai 库改变了API请求异常处理类的导入路径。 解…

JAVA:Spring Boot 3 实现 Gzip 压缩优化的技术指南

1、简述 随着 Web 应用的用户量和数据量增加&#xff0c;网络带宽和页面加载速度逐渐成为瓶颈。为了减少数据传输量&#xff0c;提高用户体验&#xff0c;我们可以使用 Gzip 压缩 HTTP 响应。本文将介绍如何在 Spring Boot 3 中实现 Gzip 压缩优化。 2、配置 Spring Boot 3 对…

云计算基础-期末复习

第一章&#xff1a;云计算概论 一、云计算的定义与特征 1. 定义&#xff1a; 云计算是一种通过网络以按需、可扩展的方式获取计算资源和服务的模式。它将计算资源视为一种公用事业&#xff0c;用户可以根据需求动态获取和释放资源&#xff0c;而无需了解底层基础设施的细节。…

电脑无故提示提示“MSVCP140.dIl”文件丢失的原因以及六大解决方法!

MSVCP140.dll文件丢失的情况可能由多种原因引起&#xff0c;以下是一些常见的原因&#xff1a; 系统文件损坏&#xff1a; 病毒或恶意软件攻击可能导致系统文件损坏&#xff0c;包括MSVCP140.dll。不当的系统操作&#xff0c;如错误的删除或修改&#xff0c;也可能导致该文件丢…

GORM慢查询、SQL日志与Go项目日志的整合与串联

上节内容我们详细讲解了Go项目中GORM的下载安装、初始化、读写分离和多数据源方面的内容。仅就功能来说做完这些工作后项目对Gorm的集成已经完成了&#xff0c;实际上有些项目确实也是这样做的。上篇文章在末尾我们提了句如果仅集成到这个程度&#xff0c;功能开发完全没有问题…