如何检查程序是否准备好进行新输入?

时间:2014-02-26 13:57:47

标签: automation autoit

我有一个建模程序,我正在自动化一些使用autoit的过程。部分内容涉及更改某些显示选项。我需要一些方法来确定程序何时完成显示更新并准备好进行新输入(点击并工作)。例如,当程序运行计算时,我可以使用WinActive使用do until循环,因为在计算时它被认为是非活动的。但是,在完成计算之后,程序显示结果的时间会有不同的时间,在此期间程序被认为是活动的但不能成功接受新的输入。我目前正在使用sleep()命令,但是想通过实用检查来减少脂肪,而不是浪费时间等待一组,通常是不必要的时间。

2 个答案:

答案 0 :(得分:1)

找到了办法。虽然程序处于活动状态但仍在考虑或更新显示,但尚未准备好进行新输入,鼠标具有不同的符号。通过使用Autoit的MouseGetCurser()函数来查看程序是否准备就绪。对于我的程序,当程序仍在更新显示时,光标值为15,这意味着我可以重复极化光标值,直到程序准备好进行下一次输入。

  WinWaitClose("Map Layers")
  Do
     sleep(200)
  Until MouseGetCursor() <> 15

答案 1 :(得分:0)

你编写的任何语言应该实现Observer设计模式。

它会通知所有类别的更改,因此您不需要每隔几秒就拉一次数据。

http://www.youtube.com/watch?v=wiQdrH2YpT4