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

求Python代码:关闭Windows所有打开程序并通过subprocess启动指定exe

实现Windows系统关闭所有应用并启动指定EXE的Python代码

下面是一段可以满足需求的Python代码,它会先关闭绝大多数用户级别的应用程序(避免误关系统核心进程),随后重启桌面进程保证桌面状态正常,最后启动指定的EXE文件:

import subprocess
import time

def close_all_apps():
    # 关闭所有用户进程,排除系统关键进程和当前Python进程
    try:
        # 强制关闭所有非系统进程(过滤掉系统进程、服务、以及当前Python运行进程)
        subprocess.run([
            "taskkill", "/f", "/fi", "STATUS eq RUNNING", "/fi", "IMAGENAME ne explorer.exe",
            "/fi", "IMAGENAME ne svchost.exe", "/fi", "IMAGENAME ne csrss.exe",
            "/fi", "IMAGENAME ne wininit.exe", "/fi", "IMAGENAME ne python.exe",
            "/fi", "IMAGENAME ne pythonw.exe"
        ], check=True, capture_output=True, text=True)
        time.sleep(1)
        # 重启explorer.exe以刷新桌面,避免桌面无响应
        subprocess.run(["taskkill", "/f", "/im", "explorer.exe"], check=True, capture_output=True)
        time.sleep(0.5)
        subprocess.Popen("explorer.exe")
        time.sleep(2)
        print("所有非系统应用已关闭,桌面已重置")
    except subprocess.CalledProcessError as e:
        # 忽略部分进程无法关闭的情况(比如有些进程已经结束)
        print(f"关闭进程时出现预期内的异常:{e.stderr}")

def start_target_exe(exe_path):
    try:
        subprocess.Popen(exe_path)
        print(f"已成功启动应用:{exe_path}")
    except Exception as e:
        print(f"启动应用失败:{str(e)}")

if __name__ == "__main__":
    # 替换为你要启动的EXE文件的绝对路径
    TARGET_EXE = r"C:\Path\To\Your\TargetApp.exe"
    
    close_all_apps()
    start_target_exe(TARGET_EXE)

关键说明

  • 进程过滤:taskkill命令通过/fi参数排除了系统核心进程(如explorer.exe、svchost.exe等)以及当前Python运行进程,避免系统崩溃或脚本自身被关闭。
  • 桌面重启:关闭大量进程后explorer.exe可能出现异常,因此先关闭再重启它,保证桌面状态正常,方便pyautogui后续的屏幕识别操作。
  • 路径注意:启动EXE时请使用绝对路径,如果路径包含空格,记得用原始字符串(r"")包裹。

注意事项

  • 运行此代码会强制关闭所有未保存的用户应用,可能导致数据丢失,请提前确认所有工作已保存。
  • 部分后台进程或受保护的应用可能无法被关闭,属于正常情况,不影响后续pyautogui的使用。

内容的提问来源于stack exchange,提问作者Maki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:15:44