如何快速部署Qwen2.5-1.5B-Instruct-ptpc-Quark-ts:5分钟入门指南
2026/7/11 11:34:35
基于 tkinter 开发的程序 / 网址启动器(RunCat),支持可视化管理启动项、拖拽排序、延迟启动、开机自启、托盘常驻、日志记录等功能,兼容 Windows 系统,可打包为 exe 运行。
exe_dir():获取程序运行目录(源码 / 打包后通用)resource_path():读取打包资源(PyInstaller onefile/onedir 兼容)data_path():持久化配置文件路径(固定到 exe 同目录)| 功能 | 实现方式 |
|---|---|
| 开机自启(Windows) | 通过修改注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run |
| 托盘常驻 | 使用 pystray 实现,支持隐藏窗口 / 恢复窗口 / 启动全部 / 退出 |
| 启动项管理 | 支持添加 / 删除 / 拖拽排序,配置持久化到 programs.json |
| 多类型启动 | 支持本地程序(exe / 脚本)和网址(自动调用浏览器) |
| 精细化控制 | 延迟启动、重试机制、启用 / 禁用、是否参与 “启动全部” |
| 日志记录 | 实时输出启动日志,包含耗时、状态(成功 / 失败) |
launch_program():核心启动逻辑,区分文件 / 网址类型,处理延迟、重试start_all():批量启动(仅启动 “启用 + 加入全部” 的项)drag_sort:列表拖拽排序(通过 order 字段维护顺序)load/save_data():配置文件的读写,兼容旧数据格式%USERPROFILE%)# 示例:启动子进程时增加更多容错 def launch_program(self, cfg): # ... 原有逻辑 ... try: if ptype == "url": # 兼容不同浏览器调用方式 browsers = [webbrowser.get('windows-default'), webbrowser.get('chrome'), webbrowser.get('edge')] for browser in browsers: try: success = browser.open(path) if success: break except: continue else: # 增加启动参数/隐藏窗口(Windows) startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW proc = subprocess.Popen( path, cwd=os.path.dirname(path), startupinfo=startupinfo, creationflags=subprocess.CREATE_NEW_CONSOLE # 可选:新建控制台 ) # ... 原有逻辑 ...推荐打包命令(需提前安装 pyinstaller):
pyinstaller -F -w -i 64-001.ico --add-data "64-001.ico;." --add-data "32-001.ico;." --add-data "programs.json;." tk.py-F:单文件打包-w:无控制台窗口-i:设置 exe 图标--add-data:打包资源文件(路径分隔符:Windows 用;,Linux/Mac 用:)配置文件无法保存:
C:\Program Files)托盘图标显示异常:
32-001.ico 是 32x32 尺寸的图标文件网址无法启动:
开机自启不生效:
regedit 查看)该启动器具备完整的程序 / 网址管理能力,核心逻辑清晰,易于扩展。适合作为日常工作的快捷启动工具,可根据个人需求添加自定义功能(如定时启动、远程启动等)。
#!/usr/bin/env python # -*- coding: utf-8 -*- # # 文件名:tk.py # 作者:Administrator # 日期:2026/1/1 # 描述: import tkinter as tk from tkinter import ttk, filedialog, scrolledtext, messagebox, simpledialog import subprocess import threading import os import sys import json import time from datetime import datetime import platform # ========= 托盘 ========= import pystray from pystray import MenuItem as TrayItem from PIL import Image, ImageDraw import webbrowser # 添加 webbrowser 支持 # ================== 路径处理(兼容 exe / onefile / onedir) ================== def exe_d