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

如何用Python关闭Windows系统中指定的运行中应用?

关闭指定运行中应用的几种可行方法

你的send_keys('%{F4}')失效,核心原因是这个快捷键只会作用于当前激活的前台窗口,如果Discord没处于前台,操作就不会生效。下面是几种更可靠的解决方案:


方法1:用pywinauto直接连接并关闭应用(延续你现有库)

你已经在使用pywinauto的application模块,可以直接连接到运行中的Discord进程,无需激活窗口就能关闭:

from pywinauto import application

# 启动Discord的代码不变
elif "discord" in you:
    app = application.Application()
    app.start("C://Users//admin//AppData//Local//Discord//Update.exe --processStart Discord.exe")
    robot_brain = "正在运行Discord"
elif you == " exit discord":
    try:
        # 匹配标题含Discord的窗口
        app = application.Application().connect(title_re=".*Discord.*")
        app.close()  # 优雅关闭(等效于点击关闭按钮)
        # 如果需要强制终止用 app.kill()
        robot_brain = "已关闭Discord"
    except Exception:
        robot_brain = "未找到运行中的Discord"

方法2:通过进程名直接终止(适合多进程应用)

用psutil库可以直接定位并终止Discord进程,无需依赖窗口:

  1. 先安装依赖:pip install psutil
  2. 代码示例:
import psutil

def kill_process_by_name(process_name):
    for proc in psutil.process_iter(['name']):
        try:
            # 忽略大小写匹配进程名
            if proc.info['name'].lower() == process_name.lower():
                proc.terminate()
        except (psutil.NoSuchProcess, psutil.AccessDenied):
            pass

# 替换你的关闭逻辑
elif you == " exit discord":
    kill_process_by_name("Discord.exe")
    robot_brain = "已关闭Discord"

方法3:通过窗口句柄发送关闭指令(使用pywin32)

通过Windows API找到Discord窗口,直接发送关闭消息,不需要激活窗口:

  1. 先安装依赖:pip install pywin32
  2. 代码示例:
import win32gui
import win32api
import win32con

def close_window_by_title(keyword):
    def window_callback(handle, extra):
        if win32gui.IsWindowVisible(handle):
            title = win32gui.GetWindowText(handle)
            if keyword in title:
                extra.append(handle)
        return True
    
    windows = []
    win32gui.EnumWindows(window_callback, windows)
    for handle in windows:
        # 发送关闭窗口的系统消息
        win32api.SendMessage(handle, win32con.WM_CLOSE, 0, 0)

# 替换你的关闭逻辑
elif you == " exit discord":
    close_window_by_title("Discord")
    robot_brain = "已关闭Discord"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:30:44