如何让python程序在windows下开机启动
说明
标题:如何让python程序在windows下开机启动;通过脚本让程序加入注册表启动项,实现自启
简述:通过将启动脚本写入注册表\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run来实现开机自启
问题:这种开机启动比较奇怪,运行路径是cmd.exe的路径,所以执行需要自启的程序时,读取其他相对路径的文件会有错误
解决:执行启动前,切一下目录
启动脚本
import os
import sys
import time
import subprocess
def startup():
print("启动中...")
# sys.args[0]获取文件的真实路径,其他方法获取的会是cmd的路径
path=sys.argv[0].replace("startup.py","")
# 切换工作目录,不切换执行示例程序.exe的目录还是cmd的路径
os.chdir(path)
s_path = f"{os.getcwd()}\\示例程序.exe"
try:
subprocess.Popen(s_path)
except:
print("自启动失败,请手动操作...")
time.sleep(10)
print("启动完成...")
time.sleep(3)
startup()
加入启动项函数
需安装pywin32
pip install pywin32
import win32api
import win32con
# 写入注册表;name:名称;file_path:要启动的程序路径
def add_startup(name,file_path):
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,
'Software\\Microsoft\\Windows\\CurrentVersion\\Run', 0, win32con.KEY_ALL_ACCESS)
win32api.RegSetValueEx(key,name,0,win32con.REG_SZ,file_path)
win32api.RegCloseKey(key)
将[示例程序.exe]和启动脚本放在一个目录
s_path=f"{os.getcwd()}\\startup.py"
add_startup("示例",s_path)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理