有什么方法可以加速WinWaitNotActive?

时间:2012-11-05 09:39:42

标签: autohotkey

我有一个自动发送脚本,分为两步:

  1. 它运行目标程序,并在程序中开始数据库更新命令。
  2. 在WinWaitNotActive(即数据库更新完成)之后,它会运行第二次搜索'目标程序中的命令
  3. 这项工作正常,但速度太慢 - 数据库更新后最多10-15秒。有没有办法加快WinWaitNotActive?而不是WinWait我尝试使用Sleep 8秒,但有时第二个命令在db更新完成之前运行。

    是否可以监控进程活动,并在第二个命令低于某个级别后运行第二个命令?

    以下是代码:

    send !w::
    Run "Target"
    /'Update Command'
    WinWaitNotActive, Target, , ,
    Run "Target"
    /'Search Command' "Search Term"
    return
    

1 个答案:

答案 0 :(得分:1)

您可以使用所需间隔的SetTimer来检查窗口状态。

Run "Target"
; /'Update Command'
SetTimer, CheckWindow, -200  ; this check the window every 200 milliseconds
return

CheckWindow:
    if WinActive, Target
        return
    Run "Target"
    ; /'Search Command' "Search Term"
    SetTimer, % A_ThisLabel, Off      ; stop the timer
Return