当用户输入“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]”,“”,“”) 可以更好地检索文本。