给PyQt5 exe程序或者其他Python文件设置开机自启动(Windows)

1.前言

设置开机自启动其实是开机时用默认软件打开设置自启动的文件,如果是exe文件就相当于打开软件而已

2.安装 pywin32 库

由于是通过注册表的方式设置开机自启动,所以要用到 pywin32库,通过

pip list查询一下,

如果没有安装就通过

pip install pywin32 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装一下。


3.设置自启动

Autorun.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:mgboy time:2020/8/2import win32api
import win32con, winreg, os, sys"""判断键是否存在"""def Judge_Key(key_name=None,reg_root=win32con.HKEY_CURRENT_USER,  # 根节点reg_path=r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",  # 键的路径abspath=None):""":param key_name: #  要查询的键名:param reg_root: # 根节点#win32con.HKEY_CURRENT_USER#win32con.HKEY_CLASSES_ROOT#win32con.HKEY_CURRENT_USER#win32con.HKEY_LOCAL_MACHINE#win32con.HKEY_USERS#win32con.HKEY_CURRENT_CONFIG:param reg_path: #  键的路径:return:feedback是(0/1/2/3:存在/不存在/权限不足/报错)"""reg_flags = win32con.WRITE_OWNER | win32con.KEY_WOW64_64KEY | win32con.KEY_ALL_ACCESStry:key = winreg.OpenKey(reg_root, reg_path, 0, reg_flags)location, type = winreg.QueryValueEx(key, key_name)print("键存在", "location(数据):", location, "type:", type)feedback = 0if location != abspath:feedback = 1print('键存在,但程序位置发生改变')except FileNotFoundError as e:print("键不存在", e)feedback = 1except PermissionError as e:print("权限不足", e)feedback = 2except:print("Error")feedback = 3return feedback"""开机自启动"""def AutoRun(switch="open",  # 开:open # 关:closekey_name=None,abspath=os.path.abspath(sys.argv[0])):# 如果没有自定义路径,就用os.path.abspath(sys.argv[0])获取主程序的路径,如果主程序已经打包成exe格式,就相当于获取exe文件的路径judge_key = Judge_Key(reg_root=win32con.HKEY_CURRENT_USER,reg_path=r"Software\Microsoft\Windows\CurrentVersion\Run",  # 键的路径key_name=key_name,abspath=abspath)# 注册表项名KeyName = r'Software\Microsoft\Windows\CurrentVersion\Run'key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, KeyName, 0, win32con.KEY_ALL_ACCESS)if switch == "open":# 异常处理try:if judge_key == 0:print("已经开启了,无需再开启")elif judge_key == 1:win32api.RegSetValueEx(key, key_name, 0, win32con.REG_SZ, abspath)win32api.RegCloseKey(key)print('开机自启动添加成功!')except:print('添加失败')elif switch == "close":try:if judge_key == 0:win32api.RegDeleteValue(key, key_name)  # 删除值win32api.RegCloseKey(key)print('成功删除键!')elif judge_key == 1:print("键不存在")elif judge_key == 2:print("权限不足")else:print("出现错误")except:print('删除失败')

测试

主程序:TestRun.py


# 引入自启动 py 文件
from Autorun import AutoRundef check(state=1):"""开机自启动函数"""if state == 1:AutoRun(switch='open', key_name='wallzoom')  # 键的名称应该起得特别一些,起码和已经存在的自启动软件名称不一致else:AutoRun(switch='close', key_name='wallzoom')if __name__ == "__main__":check(state=1)

state=1开启自启动

查看注册表,可以看到有wallzoom键值了

state=0关闭自启动:

4.PyQt5 应用说明

虽然我测试时没有涉及 PyQt5 程序,但道理是一致的,只有把Autorun.py文件放在主程序文件同目录下,再引用它,把开机自启动绑定一个checkBox按钮或其他信号槽函数就可以很好实现了 PyQt5 程序自启动了。

注意:如果没有打包成 exe 文件,在开机时只会用默认软件打开 py 文件而已

测试时没有涉及 PyQt5 程序,但道理是一致的,只有把Autorun.py文件放在主程序文件同目录下,再引用它,把开机自启动绑定一个checkBox按钮或其他信号槽函数就可以很好实现了 PyQt5 程序自启动了。

注意:如果没有打包成 exe 文件,在开机时只会用默认软件打开 py 文件而已
.
.

.
.

给PyQt5 exe程序设置自启动(Windows)相关推荐

  1. Windows程序设置自启动

    Windows程序设置自启动 在Windows系统中,有几种方法可以设置一个程序在系统启动时自动启动: 将程序添加到开机启动文件夹: Win+R打开运行框,输入shell:startup打开开机启动文 ...

  2. 怎样把任意exe程序注册成windows系统服务(手动注册服务)

    怎样把任意exe程序注册成windows系统服务(手动注册服务) 1. 要实现这个功能要用到微软提供的两个小工具"instsrv.exe"和"srvany.exe&quo ...

  3. 如何让自己的exe程序开机自启动

    方法一. ①鼠标右键自己的exe程序,创建快捷方式 ②win+R,打开运行对话框,输入shell:startup,如下图: 将exe文件的的快捷方式拷贝到这个目录下,然后下次重启的时候自己的应用程序就 ...

  4. 潇洒郎: Python exe程序注册为windows 系统服务

    1. 将python脚本生成exe文件 安装打包工具: pip install pyinstaller 生成exe文件: pyinstaller -F dial.py 如果想noconsole 则加参 ...

  5. Go编译的exe程序设置图标和右键属性的详细信息

    下载安装MinGW MinGW Installation Manager下载地址:https://osdn.net/projects/mingw/releases/ 安装完成后运行选择Basic Se ...

  6. 怎样把任意exe程序注册成windows系统服务

    方法一:使用windows自带的命令InstallUtil.exe 步骤:1.运行--〉cmd:打开cmd命令框2.在命令行里定位到InstallUtil.exe所在的位置InstallUtil.ex ...

  7. Qt学习笔记-Qt5程序开机自启动(windows)

    原博文地址为:https://blog.csdn.net/x356982611/article/details/53183144 简介 window下开机启动最简单的实现方式就是在注册表中添加启动项目 ...

  8. Linux开发_最全在Ubnutu环境下为你的程序设置快捷启动项和启动时管理员权限

    一般情况下,我们写了一个GUI程序,想要像火狐或者等其它程序一样在桌面显示我们的快捷方式,并且单击就可以启动,不需要使用终端命令行的方法和Windows有很大的区别 Windows上的EXE程序点击W ...

  9. [课业] | 软件安全 | 使用OllyDbg破解TraceMe.exe程序

    文章目录 实验流程 1. 调试分析 2. 破解校验 参考内容 实验流程 1. 调试分析 下载并解压OllyDbg 配置调试项目信息存储位置以及OD插件本地存储位置 运行程序,弹出用户名和序列号界面,这 ...

最新文章

  1. BCH收银APP已在Android系统上下载超10000次
  2. 给大家分享微信小说域名防封最新的解决方案
  3. RvaToFileOffset 内存偏移转成文件偏移(滴水课后作业)
  4. SpringMVC获取参数的几种方式
  5. Linux 2.6内核中新的锁机制--RCU [转]
  6. mysql数据横表变成竖表_MySQL中横表和竖表相互转换
  7. 增加第三方插件_AE插件排行!!
  8. Java 调用 Python 方法学习笔记
  9. Unicode汉字编码
  10. JavaScript学习(二十二)—动态创建表格
  11. atom编辑器 apm指令配置代理
  12. ENRIE:知识图谱与BERT相结合,为语言模型赋能助力
  13. 四则运算生成器做法思路
  14. python sys.stdin.buffer_为sys.stdin设置较小的缓冲区大小?
  15. 【Hibernate教程】集合映射
  16. 硬件工程师 VS 软件工程师
  17. 华为养狼,喂的是真肉
  18. app软件怎么申请软件著作权?
  19. C语言预处理指令-单片机必备技能
  20. APP游戏运营:如何运用数据来指导手游运营

热门文章

  1. html圆点跟链接线,html5 canvas简洁的圆点线动画特效
  2. 淘宝教育浏览器无法观看
  3. php 选座,jQuery在线选座(高铁版)
  4. CVTE前端面经(2023)
  5. x3300M4,X3500M4网卡驱动下载
  6. [置顶] 记一个应届生的求职旅途
  7. 在元宇宙上做传统建筑施工培训提高培训安全性和效果
  8. KIW-AL10(全网通)线刷+卡刷 {救砖| 降级| 回官} 实用教程
  9. 如何隐藏我要啦(51.la)的统计图标
  10. 父母必看(现代教育与私塾教育的面面观)