You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python运行C:\Program Files (x86)中的.exe文件?含开机启动需求及报错排查

解决Python启动指定软件及开机自启问题

首先,你踩了一个很常见的小坑:os.chdir() 是用来切换当前工作目录的,根本不是用来启动可执行文件的!你把Chrome的exe文件路径传给它,它自然找不到对应的目录(毕竟这是个文件,不是文件夹),所以才会抛出FileNotFoundError。

正确启动指定软件的方法

我给你两种靠谱的启动程序方式,按需选择就行:

方法1:用os.startfile()(Windows专属,最简单)

这个方法专门针对Windows系统,直接传入exe路径就能一键启动程序:

import os

# 两种路径写法都可以,选你习惯的
chrome_path = r"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
# chrome_path = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
os.startfile(chrome_path)

方法2:用subprocess模块(跨平台,更灵活)

如果你的程序可能需要跨平台运行,或者需要控制进程(比如获取PID、捕获输出),subprocess是更好的选择:

import subprocess

chrome_path = r"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
# 启动Chrome后不等待它关闭,继续执行后续代码
subprocess.Popen(chrome_path)

# 如果需要等Chrome关闭后再往下跑,就换成这个:
# subprocess.run(chrome_path)

实现开机自动启动

搞定启动软件的问题后,再来说开机自启的需求,Windows下有两种常用方案:

方案1:把脚本快捷方式放到启动文件夹

Windows的用户启动文件夹路径一般是:
C:\Users\[你的用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
你可以手动把Python脚本的快捷方式拖进去,开机时系统会自动运行它。

如果想通过代码自动创建快捷方式,需要先安装pywin32(pip install pywin32),然后用这段代码:

import win32com.client
import os

# 获取当前脚本的绝对路径
script_path = os.path.abspath(__file__)
# 拼接启动文件夹路径
startup_folder = os.path.join(os.environ['APPDATA'], r'Microsoft\Windows\Start Menu\Programs\Startup')
# 快捷方式保存路径
shortcut_path = os.path.join(startup_folder, "AppLauncher.lnk")

shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(shortcut_path)
shortcut.Targetpath = script_path
shortcut.WorkingDirectory = os.path.dirname(script_path)
shortcut.save()

方案2:添加到注册表

通过修改用户注册表的Run项,也能实现开机自启,适合不想手动操作的场景:

import winreg

script_path = os.path.abspath(__file__)
# 打开注册表项
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Run", 0, winreg.KEY_SET_VALUE)
# 添加开机自启项,第一个参数是自定义的项名称
winreg.SetValueEx(key, "AppLauncher", 0, winreg.REG_SZ, script_path)
winreg.CloseKey(key)

⚠️ 注意:如果你的脚本需要在没有Python环境的电脑上运行,建议用pyinstaller打包成exe(pyinstaller --onefile your_script.py),这样更稳妥。

完整示例程序

把询问用户、启动软件、开机自启结合起来的完整代码:

import os
import subprocess

def ask_and_launch():
    app_choice = input("请输入要启动的软件(比如Chrome):").strip().lower()
    if app_choice == "chrome":
        chrome_path = r"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
        if os.path.exists(chrome_path):
            subprocess.Popen(chrome_path)
            print("Chrome已启动!")
        else:
            print("找不到Chrome的安装路径,请检查路径是否正确!")
    # 可以在这里添加更多软件的判断逻辑,比如微信、QQ等
    else:
        print("暂不支持启动该软件!")

if __name__ == "__main__":
    ask_and_launch()
    # 如果你需要自动添加开机自启,就把上面的注册表/快捷方式代码放在这里

最后提醒下:如果打包成exe,记得测试开机自启是否正常,部分杀毒软件可能会拦截,需要添加信任。

内容的提问来源于stack exchange,提问作者N.Gamlin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:17:47