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

如何获取threading.Timer中调用的check_is_window_open函数返回值?

解决方案

方案1:让检查函数自行处理后续逻辑(推荐)

直接修改检查函数,让它在检测到窗口未打开时自动重启定时器,窗口打开时直接执行自动化操作,无需额外获取返回值:

from pywinauto import Application
from threading import Timer

def check_is_window_open():
    try:
        app = Application(backend='uia').connect(title='Some Application')
        window = app['Some Application']
        # 窗口已打开,执行自动化逻辑
        perform_automation(window)
        return
    except:
        # 窗口未打开,10秒后再次检查
        Timer(10, check_is_window_open).start()

def perform_automation(window):
    # 这里编写你的自动化操作代码
    print("开始执行自动化操作")
    # 示例:最大化窗口
    window.maximize()

# 启动首次检查
check_is_window_open()

方案2:用共享变量传递检查结果

如果需要在独立逻辑中处理返回值,可以通过全局变量或类实例变量存储检查结果,再触发后续判断:

from pywinauto import Application
from threading import Timer

check_result = 0

def check_is_window_open():
    global check_result
    try:
        app = Application(backend='uia').connect(title='Some Application')
        window = app['Some Application']
        check_result = 1
    except:
        check_result = 0
    # 根据结果执行后续逻辑
    handle_result()

def handle_result():
    global check_result
    if check_result == 1:
        app = Application(backend='uia').connect(title='Some Application')
        perform_automation(app['Some Application'])
    else:
        Timer(10, check_is_window_open).start()

def perform_automation(window):
    print("执行自动化操作")
    # 你的自动化代码

# 启动首次检查
check_is_window_open()

方案3:主线程循环检查(最直观)

如果不需要多线程,直接在主线程用循环+睡眠的方式,可直接获取返回值:

from pywinauto import Application
import time

def check_is_window_open():
    try:
        app = Application(backend='uia').connect(title='Some Application')
        window = app['Some Application']
        return 1, window
    except:
        return 0, None

def perform_automation(window):
    print("执行自动化操作")
    # 你的自动化代码

# 循环检测直到窗口打开
while True:
    result, window = check_is_window_open()
    if result == 1:
        perform_automation(window)
        break
    time.sleep(10)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:30:19