当前位置: 首页 > article >正文

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

文章目录

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

Windows自动化的三个小工具

系统通知

import win10toast

win10toast.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), # 菜单项1
        pystray.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.systray

def 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.kler.cn/a/228664.html

相关文章:

  • HTML知识点复习
  • 网络编程-UDP套接字
  • SQL Server查询计划操作符——查询计划相关操作符(4)
  • 【2024年华为OD机试】(C卷,100分)- 悄悄话 (Java JS PythonC/C++)
  • 【LLM-RL】DeepSeekMath强化对齐之GRPO算法
  • Web前端第一次作业
  • jmeter-04创建请求
  • 类银河恶魔城学习记录1-5 CollisionCheck源代码 P32
  • 2024 高级前端面试题之 性能优化模块 「精选篇」
  • 华为机考入门python3--(8)牛客8-合并表记录
  • RedHat8.4安装邮件服务器
  • Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透
  • BUG:docker启动之后直接退出问题
  • C++面试:数据库的连接池管理
  • docker-compose部署laravel项目实战(主机nginx连接项目容器)(详细配置过程)
  • SpringBoot 集成 WebSocket,实现后台向前端推送信息
  • 利用jmeter完成简单的压力测试
  • 贪心算法(简单易懂,考研复试上机知识点)
  • 保护个人信息安全,避免成为“互联网中的裸泳者”
  • 代码随想录算法训练营第27天| 39. 组合总和、40.组合总和II、131.分割回文串
  • 教师培训内容有哪些方面 本体知识和能力要求
  • 19.HarmonyOS App(JAVA)依赖布局DependentLayout使用方法
  • 关于v8垃圾回收机制以及与其相关联的知识点--还没整理版本
  • 云数据库RDS云监控
  • QT自用,勿点
  • EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读