【问题标题】:Testing if a window is responsive测试窗口是否响应
【发布时间】:2020-01-17 12:37:41
【问题描述】:

我有这个脚本来运行在线游戏,点击启动屏幕并为我输入密码。 然而,自从最新的补丁以来,%MWOStartupTime% 变得相当不可预测,这不再可靠地工作了。我怀疑游戏正在触发一些早期的网络请求。什么的。

所以问题来了:与其等待固定时间,我能否以某种方式测试给定窗口是否不仅存在而且是否响应?这样我就可以循环,等待响应窗口然后开始“点击”​​。

我也很高兴看到其他想法/解决方案。如果结果证明我需要使用 WinAPI,我也可以用真正的编程语言重写它。

Run, MWOClient.exe, %MWODirectory%

; Wait for the Client to launch
WinWait, MechWarrior Online,, 20
WinActivate, MechWarrior Online

; Wait until the window is responsive
Sleep, %MWOStartupTime%

; Press Escape a few times to skip the loading screens
Loop %MWOScreenLoops% {
    WinActivate, MechWarrior Online
    Sleep, %MWOScreenTime%
    SendInput {Esc}
}

; Click the password textbox
WinActivate, MechWarrior Online
Click %MWOPasswordBoxXCoord%, %MWOPasswordBoxYCoord%
Sleep 500

; Type the password
WinActivate, MechWarrior Online
SendInput %MWOPassword%
Sleep 500

; Copy the password to the clipboard in case the 
; password input fails
clipboard = %MWOPassword%

; Click login
Click %MWOPlayButtonXCoord%, %MWOPlayButtonYCoord%

【问题讨论】:

    标签: windows automation autohotkey


    【解决方案1】:

    您是否尝试过使用 WinWaitActive 跟踪 WinActivate?您应该能够删除 Sleep 命令。

    WinActivate, MechWarrior Online WinWaitActive, MechWarrior Online

    https://www.autohotkey.com/docs/commands/WinWaitActive.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2013-04-06
      • 2011-10-02
      • 1970-01-01
      • 2020-08-24
      • 2021-04-08
      • 1970-01-01
      相关资源
      最近更新 更多