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

Pywinauto后台运行脚本问题:最小化窗口后按键无响应

问题分析与解决

你的代码里,窗口最小化后send_keystrokes不生效的核心原因是:模拟物理按键的操作会发送给当前前台有焦点的窗口,而最小化的记事本已经失去焦点,无法接收这些按键。另外你先调用set_focus()再马上最小化,焦点会立刻转移,等于没给记事本保留有效焦点。

解决方案

直接定位到记事本的编辑控件,向控件发送按键,而非窗口级操作。控件级交互不需要窗口处于前台或有焦点,后台也能生效。

修改后的代码:

import pywinauto
from pywinauto import Application
import time

app = Application().start("notepad.exe")
time.sleep(1)  # 给程序启动留足初始化时间

# 定位记事本的编辑控件(类名为Edit)
edit_control = app.window().child_window(class_name="Edit")

app.window().minimize()
time.sleep(2)

# 直接向编辑控件发送按键
edit_control.send_keystrokes("{ENTER}")

# 可选:恢复窗口验证效果
app.window().restore()

补充说明

  • 如果你的记事本标题是特定语言(比如希腊语),后续需要连接已有窗口时,确保connect的title参数完全匹配窗口标题。
  • 避免依赖time.sleep做精确等待,pywinauto提供了wait()方法可以更可靠地等待控件就绪,比如edit_control.wait('ready', timeout=5)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:25:22