Python运行应用程序并等待其加载后再进行交互

问题描述

我正在尝试打开一个应用程序并与之交互。我在打开应用程序时遇到一个问题,但是由于它的大小,它需要一段时间才能显示出来,因此,我想以动态/ Python方式捕获该应用程序对象。

import os
import subprocess
import win32com.client

timeout = 5

big_app = r'C:\Path2BigApp\app.exe'
os.startfile(big_app)

try:
    my_app_obj = win32com.client.GetObject("AppName")
    # further steps with my_app_obj
except:
    print("nay")

我尝试使用os.startfile(big_app)启动应用程序,但不等待应用程序成功打开,因此它总是评估为“不”,subprocess.call(big_app,timeout)会打开应用程序并冻结python直到应用程序终止然后评估以下代码,subprocess.Popen(big_app)给出与第一个选项相同的结果,以及subprocess.Popen(big_app).wait(timeout)subprocess.Popen(big_app).communicate(timeout)产生仅TimeoutExpired错误,因为那里没有交互/终止。我知道我可以在循环中使用一些wait / sleep操作,但是我希望有更多的pythonic方法来解决该问题。您对此有任何建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)