3

Стандартный системный диалог печати или диалог сохранения глотает ключи, отправленные сразу после открытия. Есть ли способ, как успешно отправить ключи как можно скорее?

Подробности:

Давайте рассмотрим простой пример использования диалогового окна «Печать», например, если вы нажмете 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 ответ1

2
#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, ...
...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .