Hotkey so ändern, dass er nur ausgelöst wird, wenn der Textbereich nicht im Fokus ist

Hotkey so ändern, dass er nur ausgelöst wird, wenn der Textbereich nicht im Fokus ist

Das folgende Skript startet das Sublime-Text-Programm, wenn der Benutzer „sub“ eingibt:

:*:sub::   ;
Run "C:\Program Files\Sublime Text 3\sublime_text.exe" 
return

Das Problem ist, dass es auch ausgelöst wird, wenn ich Text in einen Textbereich wie ein Word-Dokument, einen Notizblock oder irgendwo sonst eingebe, wo Text eingegeben werden kann. Kann das Skript so geändert werden, dass es nur ausgelöst wird, wenn ein Textbereich nicht im Fokus ist?

Antwort1

:*b0:sub::
Sleep, 200
ControlGetText, OutputVar,,A
;MsgBox, %OutputVar%
;StringMid, a,OutputVar,StrLen(OutputVar)-2, 3
;MsgBox, %a%
;if not a="sub"
if not InStr(OutputVar,"sub")
    Run "notepad" 
return

Das funktioniert sehr schlecht, aber im Editor. Problem mit ControlGetText: Ich kann aus den meisten Apps keinen Text abrufen (falsche Steuerung, seltsame Kodierung) oder ich verwende es falsch. inAutoItControlGetText("[Active]","","") ruft Text viel besser ab.

verwandte Informationen