news 2026/9/24 17:05:56

python 实现window开机自动启动程序和打开网站

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python 实现window开机自动启动程序和打开网站

基于 tkinter 开发的程序 / 网址启动器(RunCat),支持可视化管理启动项、拖拽排序、延迟启动、开机自启、托盘常驻、日志记录等功能,兼容 Windows 系统,可打包为 exe 运行。

核心功能拆解

1. 路径兼容(适配 exe 打包)
  • exe_dir():获取程序运行目录(源码 / 打包后通用)
  • resource_path():读取打包资源(PyInstaller onefile/onedir 兼容)
  • data_path():持久化配置文件路径(固定到 exe 同目录)
2. 核心特性
功能实现方式
开机自启(Windows)通过修改注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
托盘常驻使用 pystray 实现,支持隐藏窗口 / 恢复窗口 / 启动全部 / 退出
启动项管理支持添加 / 删除 / 拖拽排序,配置持久化到 programs.json
多类型启动支持本地程序(exe / 脚本)和网址(自动调用浏览器)
精细化控制延迟启动、重试机制、启用 / 禁用、是否参与 “启动全部”
日志记录实时输出启动日志,包含耗时、状态(成功 / 失败)
3. 关键方法说明
  • launch_program():核心启动逻辑,区分文件 / 网址类型,处理延迟、重试
  • start_all():批量启动(仅启动 “启用 + 加入全部” 的项)
  • drag_sort:列表拖拽排序(通过 order 字段维护顺序)
  • load/save_data():配置文件的读写,兼容旧数据格式

优化 / 扩展建议

1. 功能增强
  • 批量操作:支持多选启动项,批量设置延迟 / 启用状态
  • 进程监控:增加启动后进程状态检测(是否存活)
  • 自定义浏览器:网址启动时允许选择默认浏览器
  • 环境变量支持:启动路径支持解析环境变量(如 %USERPROFILE%
  • 快捷键:添加常用操作快捷键(如回车启动选中、Del 删除)
2. 体验优化
  • 启动项分组:支持按分类管理启动项(如工作 / 娱乐)
  • 搜索过滤:列表添加搜索框,快速定位启动项
  • 图标显示:列表项显示程序 / 网址图标(提升辨识度)
  • 日志清理:添加日志清空 / 自动滚动 / 保存日志文件功能
  • 错误提示:启动失败时增加更详细的错误码 / 原因
3. 稳定性优化
# 示例:启动子进程时增加更多容错 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 # 可选:新建控制台 ) # ... 原有逻辑 ...
4. 打包优化(PyInstaller)

推荐打包命令(需提前安装 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 用:

常见问题解决

  1. 配置文件无法保存

    • 检查程序目录是否有写入权限(避免放在 C:\Program Files
    • 以管理员身份运行程序
  2. 托盘图标显示异常

    • 确保 32-001.ico 是 32x32 尺寸的图标文件
    • 替换为系统兼容的图标格式
  3. 网址无法启动

    • 检查系统默认浏览器是否配置正常
    • 手动指定浏览器路径(扩展功能)
  4. 开机自启不生效

    • 确认注册表项是否创建成功(可通过 regedit 查看)
    • 打包后的 exe 路径不要包含中文 / 空格

总结

该启动器具备完整的程序 / 网址管理能力,核心逻辑清晰,易于扩展。适合作为日常工作的快捷启动工具,可根据个人需求添加自定义功能(如定时启动、远程启动等)。

#!/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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 5:06:53

YOLOFuse Biendata平台集成测试成功

YOLOFuse Biendata平台集成测试成功 在夜间安防监控的实战场景中,一个常见的困境是:可见光摄像头在无光环境下几乎“失明”,而红外图像虽能捕捉热源却缺乏纹理细节。如何让AI系统像人眼一样,在黑夜中既“看得见”又“认得清”&…

作者头像 李华
网站建设 2026/9/22 1:45:12

无监督核谱回归测试(UKSRtest)函数详解与MATLAB实现

引言 在机器学习中,降维是处理高维数据的关键步骤,尤其是当数据呈现非线性结构时,核方法(如核主成分分析)能有效捕捉潜在模式。无监督核谱回归(Unsupervised Kernel Spectral Regression, UKSR) 是一种高效的核化降维技术,它通过谱回归框架实现无监督学习,类似于核LP…

作者头像 李华
网站建设 2026/9/15 0:08:16

YOLOFuseDiscord社区筹建中:欢迎加入讨论群

YOLOFuse多模态目标检测技术解析:基于Ultralytics YOLO的双流融合实现 在智能安防、自动驾驶和夜间监控等场景中,环境感知系统常常面临低光照、烟雾遮挡或极端天气带来的挑战。仅依赖可见光图像的传统目标检测模型,在这些条件下性能急剧下降…

作者头像 李华
网站建设 2026/9/21 21:31:00

互联网大厂Java求职面试模拟实战:谢飞机的三轮提问与详细解答

互联网大厂Java求职面试模拟实战:谢飞机的三轮提问与详细解答 在互联网大厂的Java求职面试中,技术问答不仅考察基础能力,更关注实际业务场景下的技术应用。本文以面试官与水货程序员谢飞机的对话形式,展现三轮问答过程与详尽答案解…

作者头像 李华
网站建设 2026/9/19 3:55:30

YOLOFuse百度搜索收录情况监测:首页排名提升

YOLOFuse:多模态目标检测的高效落地实践 在夜间监控、烟雾环境感知或边境巡逻等现实场景中,传统基于可见光的目标检测系统常常“失明”——光线不足、遮挡严重时,模型性能急剧下降。而与此同时,红外传感器却能捕捉到物体的热辐射信…

作者头像 李华
网站建设 2026/9/21 17:16:48

YOLOFuseProduct Hunt产品发布日冲榜成功

YOLOFuse:多模态目标检测的开箱即用解决方案 在城市夜间安防系统中,一个常见的尴尬场景是:监控摄像头在白天表现优异,一旦进入黄昏或浓雾环境,画面迅速陷入模糊与漏检——可见光传感器失去了对低对比度目标的捕捉能力…

作者头像 李华