
Стандартная системаДиалог печатиилиСохранить диалогпроглатывает ключи отправленныесразу после открытия. Есть ли способ успешно отправить ключи как можно скорее?
Подробности:
Давайте рассмотрим простой пример использования диалогового окна «Печать», например, если вы нажмете Ctrl+ Pв Internet Explorer. После того, как он откроется, я просто хочу отправить 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, ...
...