
StandardsystemDialogfeld „Drucken“oderDialogfeld „Speichern“schluckt gesendete Schlüsselsofort nach dem ÖffnenGibt es eine Möglichkeit, Schlüssel so schnell wie möglich erfolgreich zu versenden?
Einzelheiten:
Lassen Sie uns einen einfachen Anwendungsfall des Druckdialogs betrachten, d. h. wenn Sie im Internet Explorer Ctrl+ drücken P. Sobald es geöffnet ist, möchte ich nur Alt+ senden p, um dieDruckenso schnell wie möglich auf die Schaltfläche. Das folgende Skript funktioniert jedoch nicht:
#IfWinActive, ahk_class IEFrame
F2::
Send ^p
WinWait, Print,, 2
Send !p ; this has no effect if sent immediately
Return
#IfWinActive
Es funktioniert, wenn ich Sleep 500
vor einfüge Send !p
. Aber vielleicht reichen 500 ms in manchen Fällen nicht aus. Gibt es eine elegante Möglichkeit, Tastenanschläge so schnell wie möglich einzufügen?
Antwort1
#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
oder
; 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, ...
...