修改热键以便仅在文本区域不在焦点时触发

修改热键以便仅在文本区域不在焦点时触发

当用户输入“sub”时,下面的脚本会触发 Sublime Text 程序:

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

问题是,当我在文本区域(例如 Word 文档、记事本或任何可以输入文本的地方)中输入文本时,它也会触发。是否可以修改脚本,使其仅在文本区域未处于焦点时触发?

答案1

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

这很不理想,但在记事本中却能用。ControlGetText 的问题在于无法从大多数应用程序中检索文本(错误的控件、奇怪的编码)或者我使用错误。在自动识别ControlGetText(“[Active]”,“”,“”) 可以更好地检索文本。

相关内容