问题描述
我正在尝试打开一个应用程序并与之交互。我在打开应用程序时遇到一个问题,但是由于它的大小,它需要一段时间才能显示出来,因此,我想以动态/ 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 (将#修改为@)