Modifique a tecla de atalho para disparar apenas quando a área de texto não estiver em foco

Modifique a tecla de atalho para disparar apenas quando a área de texto não estiver em foco

O script abaixo aciona um programa de texto sublime quando o usuário digita "sub":

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

O problema é que ele também é acionado quando digito texto em uma área de texto, como um documento do Word, bloco de notas ou qualquer lugar onde o texto possa ser digitado. O script pode ser modificado para que seja acionado quando uma área de texto não estiver em foco?

Responder1

:*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

Isso funciona muito mal, mas funciona no bloco de notas. Problema com ControlGetText, não consigo recuperar texto (controle errado, codificação estranha) da maioria dos aplicativos ou eu o uso errado. emAutoItControlGetText("[Active]","","") recupera texto muito melhor.

informação relacionada