0

我正在使用以下代码将击键发送到应用程序:

import win32com.client
import time
process_id = 2032 # I change this value if needed
shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate(process_id)
shell.SendKeys('^o')
time.sleep(.5)
# more input ...

问题是:在某些时候一切都在走下坡路,这意味着:应用程序挂起(无法预测多久和何时!)无论出于何种原因都会带来不愉快的后果。例如,不是通过 {ENTER} 命令单击“确定”按钮,而是该击键执行其他操作。在那之后,所有的击键都把事情搞砸了,因为他们没有做他们打算做的事情。顺便说一句,使用 time.sleep 和 win32api.sleep 有区别吗?是否有系统的方法来检查我发送击键的应用程序是否再次处于稳定的就绪状态?

4

1 回答 1

0

如果应用程序是您开发的,您可以使用SendMessageTimeout来检查应用程序窗口的响应。如果响应超时,则认为应用程序处于挂起状态(而不是处于就绪状态)。

于 2019-09-27T09:56:10.827 回答