
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.