![AutoHotKey – 等待系统对话框能够接受击键的优雅方法?](https://linux22.com/image/1466448/AutoHotKey%20%E2%80%93%20%E7%AD%89%E5%BE%85%E7%B3%BB%E7%BB%9F%E5%AF%B9%E8%AF%9D%E6%A1%86%E8%83%BD%E5%A4%9F%E6%8E%A5%E5%8F%97%E5%87%BB%E9%94%AE%E7%9A%84%E4%BC%98%E9%9B%85%E6%96%B9%E6%B3%95%EF%BC%9F.png)
标准体系打印对话框或者保存对话框正在吞下发送的钥匙开封后立即。有没有什么办法可以尽快成功发送密钥?
细节:
让我们来看看打印对话框的一些简单用例,例如,如果您在 Internet Explorer 中按Ctrl+ P。一旦打开,我只想发送Alt+p以按下打印按钮。但以下脚本不起作用:
#IfWinActive, ahk_class IEFrame
F2::
Send ^p
WinWait, Print,, 2
Send !p ; this has no effect if sent immediately
Return
#IfWinActive
Sleep 500
当我在 之前插入时,它开始工作Send !p
。但在某些情况下,500 毫秒可能不够。有没有一些巧妙的方法可以尽快插入击键?
答案1
#IfWinActive, ahk_class IEFrame
F2::
Send ^p
WinWait, Print ahk_class #32770 ; Waits until the specified window exists
IfWinNotActive, Print ahk_class #32770, ,WinActivate, Print ahk_class #32770
WinWaitActive, Print ahk_class #32770 ; Waits until the specified window is active
Send !p
Return
#IfWinActive
或者
; WinWait, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText
WinWait, Print ahk_class #32770, WinText ; Use Window Spy to find out a single text element of the target window
IfWinNotActive, ...
...