Autohotkey 有没有办法加快WinWaitNotActive的速度?

Autohotkey 有没有办法加快WinWaitNotActive的速度?,autohotkey,Autohotkey,我有一个自动发送脚本,它分两步工作: 它运行一个目标程序,并在程序中开始一个数据库更新命令 WinWaitNotActive(即数据库更新完成)后,它将在目标程序中运行第二个“搜索”命令 这工作正常,但速度太慢-在数据库更新后最多10-15秒。有没有办法加快WinWaitNotActive的速度?我尝试使用Sleep代替WinWait长达8秒,但有时第二个命令会在数据库更新完成之前运行 是否可以监视流程活动,并在流程活动降至某个级别以下时运行第二个命令 代码如下: send !w:: Run "

我有一个自动发送脚本,它分两步工作:

  • 它运行一个目标程序,并在程序中开始一个数据库更新命令
  • WinWaitNotActive(即数据库更新完成)后,它将在目标程序中运行第二个“搜索”命令
  • 这工作正常,但速度太慢-在数据库更新后最多10-15秒。有没有办法加快WinWaitNotActive的速度?我尝试使用Sleep代替WinWait长达8秒,但有时第二个命令会在数据库更新完成之前运行

    是否可以监视流程活动,并在流程活动降至某个级别以下时运行第二个命令

    代码如下:

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

    您可以使用
    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
    

    是否有其他更新完成的迹象?如果完成大约需要8秒,窗口失去焦点需要10-15秒,那么在这2-7秒内会发生什么?会出现一个通知栏图标,显示数据库更新的完成进度百分比。这在我的计算机上所花费的时间各不相同,而在一台功能较差且维护较差的计算机上所花费的时间会更长。更新完成后,托盘图标消失,没有可见的活动,直到WinWait检测到不活动(甚至在20-30秒之后),然后运行第二个命令并打开目标程序中的搜索窗口。