Windows自动化实现:系统通知和任务栏图标自定义

文章目录

  • Windows自动化的三个小工具
    • 系统通知
    • 任务栏图标
      • 使用pystray实现
      • 使用infi.systray实现

Windows自动化的三个小工具

系统通知

import win10toastwin10toast.ToastNotifier().show_toast("eee", "休息一下", icon_path="icon.ico", duration=5)

这段代码使用win10toast库显示一个Windows通知。通过调用show_toast()函数,可以在系统托盘区域显示一个通知,通知的标题为"eee",内容为"休息一下",图标使用"icon.ico",持续显示时间为5秒。
请添加图片描述

任务栏图标

使用pystray实现

import pystray
from PIL import Image  
import PIL.Image
import PIL.ImageTk# 加载图标图片
def load_icon_image(file_path):"""加载图标图片"""icon_img = PIL.Image.open(file_path)return icon_img# 创建菜单
def create_menu():"""创建程序菜单"""  menu = pystray.Menu(pystray.MenuItem("你好", say_hello), # 菜单项1pystray.MenuItem("退出", exit_program) # 菜单项2)return menu  # 菜单功能函数
def say_hello():"""点击'你好'时打印问候语"""print("Hello")def exit_program():"""点击'退出'时结束程序"""icon.stop()# 创建图标    
def create_icon():  """创建系统托盘图标"""icon_img = load_icon_image("icon.ico")  menu = create_menu()icon = pystray.Icon("name", icon_img, "图标", menu) return icon# 运行图标  
if __name__ == "__main__":   icon = create_icon()icon.run()

这段代码使用pystray库创建一个系统托盘图标,同时设置了一个菜单。通过调用load_icon_image()函数加载图标图片,再调用create_menu()函数创建菜单。菜单中包含两个项,分别是"你好"和"退出",点击"你好"时会调用say_hello()函数打印问候语,点击"退出"时会调用exit_program()函数结束程序。最后,调用create_icon()函数创建图标对象,并调用run()方法显示图标。
请添加图片描述

使用infi.systray实现

import infi.systraydef on_click(text):print(f"{text} clicked")menu_items = (("开始", "icon.ico", on_click),("开始2", "icon.ico", on_click) 
)
icon = infi.systray.SysTrayIcon("icon.ico", "小助手", menu_items, on_click)
icon.start()

这段代码使用infi.systray库创建一个系统托盘图标,并设置了一个菜单。通过定义on_click()函数处理菜单项的点击事件,点击菜单项时会打印相应的文本。菜单中包含两个项,分别是"开始"和"开始2",点击这两个菜单项时都会调用on_click()函数。最后,调用start()方法启动图标。请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决CORS错误(Spring Boot)

记录一下错误,以博客的形式 前言 跨域(Cross-Origin)是指在Web开发中,当一个Web应用试图从一个源(域名、协议、端口组合)获取资源时,该请求的目标与当前页面的源不同。具体来说,当一…

@RequestBody、@RequestParam、@RequestPart使用方式和使用场景

RequestBody和RequestParam和RequestPart使用方式和使用场景 1.RequestBody2.RequestParam3.RequestPart 1.RequestBody 使用此注解接收参数时,适用于请求体格式为 application/json,只能用对象接收 2.RequestParam 接收的参数是来自HTTP 请求体 或 请…

containerd中文翻译系列(十五)转运服务

传输服务是一种简单灵活的服务,可用于在源和目的地之间传输人工制品对象。灵活的应用程序接口(API)允许传输接口的每个实施方案决定是否可以在源和目的地之间进行传输。这样,实现者就可以直接添加新功能,而无需对应用程…

Python(21)正则表达式中的“元字符”

大家好!我是码银🥰 欢迎关注🥰: CSDN:码银 公众号:码银学编程 获取资源:公众号回复“python资料” 在本篇文章中介绍的是正则表达式中一部分具有特殊意义的专用字符,也叫做“元…

时光峰峦文物璀璨,预防性保护筑安全

在璀璨的历史长河中,珍贵文物如同时间的印记,承载着过往的辉煌。《人文山水时光峰峦——多彩贵州历史文化展》便是这样一场文化的盛宴,汇聚了众多首次露面的宝藏。然而,文物的保存对环境要求极为苛刻,温湿度波动都可能…

传输频宽是啥?对网速影响有多大?

频宽,即WIFI频道宽度,又称为WIFI信道宽度,是WiFi Channel width的缩写。从科学的定义来说,Wi-Fi频道宽度,是指Wi-Fi无线信号在频谱上所占用的带宽大小。它决定了Wi-Fi网络的数据传输速率和稳定性,一般有20M…

解密输入输出迷局:蓝桥杯与ACM中C++/C语言常见问题揭秘

关于C中的常见输入输出汇总 带空格的字符串: ​ 对于这种输入方式我们选择使用gets() 函数来进行输入,gets用于从标准输入(通常是键盘)读取一行文本并将其存储为字符串,直到遇到换行符(‘\n’&#xff09…

由繁化简 Q-Automation助力自动化测试管理

Q-Automation是基于ATX的自动化测试管理软件,用于测试电子控制单元(ECU)。该软件支持诊断协议层测试和诊断功能测试,且只需填写Excel表格,即可实现半自动化测试需求,从而缩短用户的测试周期。此外&#xff…

【Linux】基于UDP协议的“聊天室”

目录 预备知识 基本思路 服务端设计 重要接口详解 服务端核心代码 服务端运行代码 客户端设计 预备知识 UDP协议(User Datagram Protocal用户数据报协议) 传输层协议无连接不可靠传输面向数据报 基本思路 如下是我们设计的一个简单的“聊天室…

CRNN介绍:用于识别图中文本的深度学习模型

CRNN:用于识别图中文本的深度学习模型 CRNN介绍:用于识别图中文本的深度学习模型CRNN的结构组成部分工作原理 CRNN结构分析卷积层(Convolutional Layers)递归层(Recurrent Layers)转录层(Transc…

嵌入式学习之Linux入门篇笔记——13,Linux第一个程序HelloWorld

配套视频学习链接:http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 1.什么是 gcc? gcc 全称(gun compiler…

目标检测 | 卷积神经网络(CNN)详细介绍及其原理详解

前言:Hello大家好,我是小哥谈。卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,主要用于图像识别和计算机视觉任务。它的设计灵感来自于生物学中视觉皮层的工作原理。CNN的核心思想是通…

【人工智能】横扫市场的巨星大模型:探秘当今最热门的AI力量

今年,ChatGPT成了大家的明星,简直是个神奇的助手!问什么问题,都秒回,写各种文字、甚至代码,简直是工作利器。而国内这半年AI领域热度不减,涌现了一批新公司和产品,大厂也在风头上。A…

FPGA高端项目:解码索尼IMX327 MIPI相机转USB3.0 UVC 输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存UVC 时序USB3.0输出架构FPGA逻辑设计工程源码架构SDK软件工程源…

从Unity到Three.js(安装启动)

发现在3D数字孪生或模拟仿真方向,越来越多的公司倾向使用Web端程序,目前一直都是使用的Unity进行的Web程序开发,但是存在不少问题,比如内存释放、shader差异化、UI控件不支持复制或输入中文等。虽然大多数问题都可以找到解决方案&…

通过nginx学习linux进程名的修改

目录 1. 缘起2. 背景知识3. 源码分析3.1 准备工作3.2 设置进程名字 1. 缘起 在运行nginx的时候,用ps查看nginx的进程信息,可能的输出如下: root 42169 3105 0 16:51 ? 00:00:00 nginx: master process ./objs/nginx root …

STM32/C51开发环境搭建(KeilV5安装)

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等…

【SpringBoot】策略和模板模式的思考与实践

一、应用场景 之所以会将策略和模板模式放在一起,是因为这两种模式用的最多最广泛,而且基本都是联合使用的。在开始之前,先复习一下模式的定义: 模板模式(Template Pattern) 模板模式是在一个抽象类中定…

python+flask人口普查数据的应用研究及实现django

作为一款人口普查数据的应用研究及实现,面向的是大多数学者,软件的界面设计简洁清晰,用户可轻松掌握使用技巧。在调查之后,获得用户以下需求: (1)用户注册登录后,可进入系统解锁更多…

C#,栅栏油漆算法(Painting Fence Algorithm)的源代码

1 刷油漆问题 给定一个有n根柱子和k种颜色的围栏,找出油漆围栏的方法,使最多两个相邻的柱子具有相同的颜色。因为答案可以是大的,所以返回10^97的模。 计算结果: 2 栅栏油漆算法的源程序 using System; namespace Legalsoft.Tr…