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



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

import os
import subprocess
import win32com.client
timeout = 5
big_app = r'C:Path2BigAppapp.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错误,因为那里没有交互/终止。我知道我可以在循环中使用一些等待/睡眠操作,但我希望有更多的蟒蛇方法来解决这个问题。你对此有什么建议吗?

你有一个方法来检查你的应用程序是否成功加载吗?

我会启动一个while循环,尝试检测应用程序何时加载。如果没有加载-等待一秒钟并重复,如果加载了,则继续。

最新更新