系统托盘图标+快捷启动(Python)

QkStart

我把这个程序命名为QkStart

代码

# -*- coding: utf-8 -*-
# Environment    PyCharm
# File_name   QkStart |User    Pfolg
# 2024/10/19 22:06
import threading
import time
import pystray
from PIL import Image
from pystray import MenuItem, Menu
import os
import psutil
# import webbrowser# pyinstaller -F -w -i QkStart.png QkStart.pywdefault_exe = {"ClickShow": r"D:\Little_Tools\Clickshow\ClickShow.exe","Steam++": r"D:\Program Files\Steam++\Steam++.exe",
}
links = {"海螺AI": "https://hailuoai.com/","carbon": "https://carbon.now.sh/",
}
choice_exe = {"PixPin": r"D:\Software\PixPin\PixPin\PixPin.exe","PowerToys": r"D:\Program Files (x86)\PowerToys\PowerToys.exe","LANDrop": r"C:\Users\21460\AppData\Local\Programs\landrop-v2-electron\LANDrop.exe","KeyCastOW": r"D:\Little_Tools\KeyCastOW\KeyCastOW.exe","geek": r"D:\Little_Tools\geek.exe","FDM": r"D:\Program Files\Softdeluxe\Free Download Manager\fdm.exe",
}
all_target = {}  # 整合字典
for i in [default_exe, links, choice_exe]:for j, k in i.items():all_target[j] = kdef open_exe(icon, item):  # 使用类的默认传参来传递参数,然后检索程序并执行try:os.startfile(all_target.get(item.text))except OSError:icon.notify("{0}启动失败".format(item.text), "OSError")def open_link(icon, item):os.system("start {}".format(all_target.get(item.text)))# webbrowser.open_new_tab(all_target.get(item.text))  # 减少模块使用picture = r".\QkStart.png"menu = []# for i in [default_exe, links, choice_exe]:
#     for key, value in i.items():
#         menu.append(MenuItem(text=key, action=lambda v=value: open_exe(exe=v)))  # 在 lambda 函数内部定义一个局部变量来存储当前的 value 值
#     menu.append(Menu.SEPARATOR)
# menu.append(MenuItem(text='退出', action=lambda: icon.stop()))for key in default_exe:menu.append(MenuItem(text=key, action=open_exe))
menu.append(Menu.SEPARATOR)
for key in links:menu.append(MenuItem(text=key, action=open_link))
menu.append(Menu.SEPARATOR)
for key in choice_exe:menu.append(MenuItem(text=key, action=open_exe))
menu.append(Menu.SEPARATOR)
menu.append(MenuItem(text='退出', action=lambda: icon.stop()))# "原方法"
# menu = (MenuItem(text='ClickShow', action=lambda: open_exe(r"D:\Little_Tools\Clickshow\ClickShow.exe")),
#         MenuItem(text='Steam++', action=lambda: open_exe(r"D:\Program Files\Steam++\Steam++.exe")),
#         # MenuItem(text='菜单3', action=, enabled=False),
#         Menu.SEPARATOR,
#         MenuItem(text="海螺AI", action=lambda: open_link("https://hailuoai.com/")),
#         MenuItem(text="carbon", action=lambda: open_link("https://carbon.now.sh/")),
#         Menu.SEPARATOR,
#         MenuItem(text='PixPin', action=lambda: open_exe(r"D:\Software\PixPin\PixPin\PixPin.exe")),
#         MenuItem(text="PowerToys", action=lambda: open_exe(r"D:\Program Files (x86)\PowerToys\PowerToys.exe")),
#         MenuItem(text="LANDrop", action=lambda: open_exe(
#             r"C:\Users\21460\AppData\Local\Programs\landrop-v2-electron\LANDrop.exe")),
#         MenuItem(text="KeyCastOW", action=lambda: open_exe(r"D:\Little_Tools\KeyCastOW\KeyCastOW.exe")),
#         MenuItem(text="geek", action=lambda: open_exe(r"D:\Little_Tools\geek.exe")),
#         MenuItem(text="FDM", action=lambda: open_exe(r"D:\Program Files\Softdeluxe\Free Download Manager\fdm.exe")),
#         # MenuItem(text='我是点击图标的菜单', action=, default=True, visible=False),
#         Menu.SEPARATOR,
#         MenuItem(text='退出', action=on_exit),
#         )
def auto_run():battery = psutil.sensors_battery()plugged = battery.power_pluggedif plugged:time.sleep(60)for exe in default_exe:os.startfile(default_exe.get(exe))time.sleep(3)if __name__ == '__main__':threading.Thread(target=auto_run).start()image = Image.open(picture)icon = pystray.Icon("QkStart", image, "快速启动应用", menu)icon.run()

🤓👆🏼

传递参数那块儿还是花了我一点时间的,结果是程序对内存的要求更高了

能干嘛

不会吹牛,就是简单的实现一下运行并自启动一些程序,如果把它放到startup文件夹里面就能实现开机自启(程序)了,它会在系统托盘处创建一个自己的图标,并自带一些功能

系统托盘:

自带的功能:

这个可以在代码里进行修改,只需要改一下字典里面的key和value就可以了 

 

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

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

相关文章

【网络安全】缓存欺骗问题之查看个人资料接口

未经许可,不得转载。 文章目录 正文正文 目标网站 target.com,查看个人资料页面时,API 端点为/get_user,完整的 URL 是 https://target.com/web-api/v1/get_user?timestamp=123456(其中 timestamp 是一个易受攻击的参数)。 我注意到响应中有一个 cf-cache-status= MISS…

【ESP32-IDFV5.3.1开发】带SSL的MQTT-demo连接教程

目录 1.VSCODE以及IDF环境配置(略) 2.准备demo 2.1打开VSCODE,主菜单创建示例 找到SSL对应demo,点击创建,并成功创建项目,点击编译,显示编译成功即可以下一步。 确认该demo支持的开发板是你手上的开发板 3.修改demo配…

了解EasyNVR及EasyNVS,EasyNVR连接EasyNVS显示授权超时如何解决?什么原因?

我们先来了解NVR批量管理软件/平台EasyNVR,它深耕市场多年,为用户提供多种协议,兼容多种厂商设备,包括但不限于支持海康,大华,宇视,萤石,天地伟业,华为设备。 NVR录像机…

基于模型设计的智能平衡移动机器人-基础实验SPI

目录 SPI介绍 模型搭建 SPI介绍 SPI即Serial Peripheral Interface是高速同步串行输入/输出端口。SPI目前被广泛用于外部移位寄存器、D/A、A/D、串行EEPROM、LED显示驱动器等外部芯片的扩展。与前文介绍的SCI最大的区别是,SPI是同步串行接口。 SPI接口的通信原理简单&#…

(五)若使用LQR控制小车倒立摆,该如何对小车和摆杆的动力学方程线性化?哪些变量是可以进行简化的,线性化后的状态空间方程应该怎么列写

写在前面: 关于lqr控制的讲解,可以观看如下三个视频: 2. LQR数学公式理解_哔哩哔哩_bilibili 如何感性地理解LQR控制?_哔哩哔哩_bilibili LQR简介与使用_哔哩哔哩_bilibili 正文: 在之前系列的文章中我们已经得出…

WGCLOUD使用手册 - 文件防篡改监测

WGCLOUD作为一款运维平台,天然具备了文件防篡改监测能力,也可以监测文件夹 如果发现文件或者文件夹下的文件,被修改,被删除,被添加等操作,会立刻发送告警通知 如果设置了自动恢复指令,也会立刻…

极速体验:实用的前端性能优化技巧

本文将深入探讨一系列实用的前端性能优化方案,从基础知识到高级技巧,我们将揭示如何让你的网站在瞬息万变的互联网中脱颖而出,无论你是经验丰富的开发者还是刚入行的新手,这篇文章都将为你提供宝贵的见解和实践建议。 目录 &…

基于SSM+微信小程序的打印室预约管理系统(打印2)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的打印室预约管理系统实现了管理员和用户两个角色。 1、管理员功能有个人中心,用户管理,附近打印店管理,文件打印管理,当…

rk3568 android11 单独烧写内核。

问题: 我现在 遇到一个问题,如果我单独 烧写boot.img 的话,就会进入 recovery 的模式。 如下图: 问题说明: 如果我烧写的 Update.img 是可以启动的。那么我再烧写一个 编译 update.img 顺带编译出来的 boot.img 是可以正常启动的。 问题出在 , 如果我 重新编译一遍 ,使…

LVGL-从入门到熟练使用

LVGL简介 LVGL( Light and Versatile Graphics Library )是一个轻量、多功能的开源图形库。 1、丰富且强大的模块化图形组件:按钮 、图表 、列表、滑动条、图片等 2、高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等…

WebGL编程指南 - WebGL入门

初识绘图流程、缓冲区、着色器、attribute和uniform变量 先画一个蓝色的正方形 html代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content&…

stm32 为什么有2个晶振?8mhz+32.768k

1个是系统时钟晶振是单片机内部系统的主时钟源&#xff0c;它负责控制整个系统的时钟频率。这个晶振的频率一般比较高&#xff0c;通常在几十MHz到几百MHz不等。它和CPU以及各种总线之间相互配合&#xff0c;从而协同工作。 另外一个是外设时钟晶振则通常用于单片机的内部外设…

【大模型问答测试】大模型问答测试脚本实现(第二版)——接入pytest与代码解耦

背景 接上一篇&#xff0c;【大模型问答测试】大模型问答测试脚本实现&#xff08;第一版&#xff09;。 在实现自动化的时候&#xff0c;原先把很多方法与request请求写在一块了&#xff0c;趁着目前实现接口数量较少&#xff0c;决定对代码进行解耦&#xff0c;并且清晰目录…

大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

[论文阅读]RGB-Depth Fusion GAN for Indoor Depth Completion

摘要 由于固有的限制&#xff0c;如无法感知透明物体和有限的距离范围&#xff0c;室内深度传感器捕获的原始深度图像通常会有大面积的深度值缺失。这种不完整的深度图给许多后续视觉任务带来了负担&#xff0c;尽管提出了很多深度补全方法来缓解这一问题。但是现有的大多数方…

解决k8s集群中安装ks3.4.1开启日志失败问题

问题 安装kubesphere v3.4.1时&#xff0c;开启了日志功能&#xff0c;部署时有三个pod报错了 Failed to pull image “busybox:latest”: rpc error: code Unknown desc failed to pull and unpack image “docker.io/library/busybox:latest”: failed to copy: httpRead…

字节跳动青训营——入营考核解答(持续更新中~~~)

考核内容&#xff1a; 在指定的题库中自主选择不少于 15 道算法题并完成解题&#xff0c;其中题目难度分配如下&#xff1a; 简单题不少于 10 道中等题不少于 4 道困难题不少于 1 道 解答代码 16.DNA 序列还原 &#xff08;简单&#xff09; 代码实现&#xff1a; public…

零基础Java第八期:一维数组(1)

目录 一、 一维数组的基本概念 1.1. 什么是数组 1.2. 数组的创建及初始化 1.3. 数组的使用 二、数组是引用类型 2.1. 初始JVM的内存分布 2.2. 基本类型变量与引用类型变量 2.3. 引用变量的理解 2.4. null 三、数组的应用场景 3.1. 作为函数的参数 3.2. 作为函数的返…

2024台州赛CTFwp

备注&#xff1a; 解题过程中&#xff0c;关键步骤不可省略&#xff0c;不可含糊其辞、一笔带过。解题过程中如是自己编写的脚本&#xff0c;不可省略&#xff0c;不可截图&#xff08;代码字体可以调小&#xff1b;而如果代码太长&#xff0c;则贴关键代码函数&#xff09;。…

【HarmonyOS NEXT】服务端向终端推送消息——获取Push Token

【需求】 获取Push Token 【文档】 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-get-token-V5 【代码】 // EntryAbility.ets 文件 import { pushService } from kit.PushKit; export default class EntryAbility extends UIAbility {onCreat…