Deaktiviert oder aktiviert die Fähigkeit des Benutzers, mit dem Computer mittels Tastatur und Maus zu interagieren.
BlockInput, OnOff BlockInput, SendMouse BlockInput, MouseMove ; [v1.0.43.11+]
Dieser Modus blockiert bedingungslos alle Benutzereingaben. Geben Sie eines der folgenden Wörter an:
On: Der Benutzer kann nicht länger mit dem Computer interagieren (Maus- und Tastatureingaben haben keine Wirkung).
Off: Aktiviert wieder die Eingabe.
[v1.1.30+]: Es ist möglich, die dezimalen Werte 1 und 0 anstelle von On bzw. Off zu verwenden.
Dieser Modus blockiert nur Benutzereingaben, während bestimmte Send- und/oder Mouse-Befehle ausgeführt werden. Geben Sie eines der folgenden Wörter an:
Send: Die Tastatur- und Mauseingaben des Benutzers werden ignoriert, während Send oder SendRaw Tasten sendet (dies gilt nur für den traditionellen SendEvent-Modus). Dadurch wird verhindert, dass die Tastendrücke des Benutzers die Ausführung der simulierten Tastendrücke stören. Wenn das Senden beendet ist, wird die Eingabe wieder aktiviert (sofern sie nicht durch ein vorheriges BlockInput On
blockiert wird).
Mouse: Die Tastatur- und Mauseingaben des Benutzers werden ignoriert, während Click, MouseMove, MouseClick oder MouseClickDrag Mausaktionen durchführt (dies gilt nur für den traditionellen SendEvent-Modus). Dadurch wird verhindert, dass die Mausaktionen des Benutzers künstlich gesendete Mausereignisse stören. Wenn der Mausbefehl seine Aktion durchgeführt hat, wird die Eingabe wieder aktiviert (sofern sie nicht durch ein vorheriges BlockInput On
blockiert wird).
SendAndMouse: Eine Kombination der beiden oben genannten Einstellungen.
Default: Schaltet die Send- und Mouse-Einstellung aus, aber ändert nicht den aktuellen Zustand der Eingabeblockierung. BlockInput On
beispielsweise kann nicht durch BlockInput Default
deaktiviert werden.
Dieser Modus blockiert nur die Bewegung des Mauszeigers. Geben Sie eines der folgenden Wörter an:
MouseMove: Der Mauszeiger wird sich nicht bewegen, wenn der Benutzer die Maus physisch bewegt (eine mögliche Ausnahme sind DirectInput-Anwendungen). Wenn ein Skript diesen Befehl zum ersten Mal verwendet, wird der Maus-Hook installiert (falls noch nicht geschehen). Darüber hinaus wird das Skript persistent; das heißt, dass das Skript nur noch mit ExitApp terminiert werden kann. Jedes Mal, wenn das Skript einen Suspend- oder Hotkey-Befehl erreicht, wird überprüft, ob der Maus-Hook noch von Hotkeys oder Hotstrings beansprucht wird. Ist dies nicht der Fall, wird der Hook wieder deinstalliert (siehe #Hotstring NoMouse).
MouseMoveOff: Der Benutzer darf den Mauszeiger wieder bewegen.
Alle drei BlockInput-Modi (OnOff, SendMouse und MouseMove) operieren unabhängig voneinander. Es ist zum Beispiel möglich, jederzeit BlockInput On
und BlockInput Off
zu nutzen, während eines der Wörter von SendMouse aktiv ist. Ein weiteres Beispiel: Wenn BlockInput On
und BlockInput MouseMove
gleichzeitig aktiv sind, kann der Mauszeiger erst bewegt werden, wenn beide ausgeschaltet werden.
Hinweis: Die Modi OnOff und SendMouse haben möglicherweise keine Auswirkung, wenn UAC aktiv ist oder das Skript ohne Adminrechte gestartet wurde. Weitere Informationen finden Sie in der FAQ.
Anstelle von BlockInput ist es oft besser, SendMode Input
oder SendMode Play
zu nutzen, damit Tastendrücke und Mausklicks nicht unterbrochen werden können. Diese Modi verhindern im Gegensatz zu BlockInput, dass die Eingaben des Benutzers während des Sendens verworfen werden; stattdessen werden solche Tastendrücke gepuffert und später gesendet. Der Verzicht auf BlockInput verhindert auch, dass Tasten, die hängen bleiben, umgangen werden müssen, wie im nächsten Abschnitt beschrieben.
Es kann vorkommen, dass Tasten "hängen bleiben", wenn der Benutzer sie gedrückt hält, während BlockInput aktiviert wird. Das folgende Beispiel zeigt, wie man das umgehen kann, indem man zuerst wartet, bis Tasten losgelassen werden, und dann BlockInput einschaltet:
^!p:: KeyWait Control ; Wartet, bis die Taste losgelassen wird. Verwenden Sie für jeden Hotkey-Modifikator ein eigenes KeyWait. KeyWait Alt BlockInput On ; ... Tastendrücke und Mausklicks senden ... BlockInput Off return
Die Eingabeblockierung wird vorübergehend deaktiviert, wenn ein Alt-Ereignis gesendet wird (und danach wieder aktiviert).
BlockInput blockiert die Eingaben des Benutzers, aber nicht die simulierten Tastendrücke und Mausklicks von AutoHotkey. Durch Drücken von Strg+Alt+Entf wird die Eingabe jedoch aufgrund einer Windows-API-Funktion wieder aktiviert.
Bestimmte Arten von Hook-Hotkeys können auch dann noch ausgelöst werden, wenn BlockInput eingeschaltet ist. Darunter fallen würde zum Beispiel MButton
(Maus-Hook) und LWin & Space
(Tastatur-Hook mit explizitem Präfix statt den Modifikatoren $#
).
Die Eingabe wird automatisch wieder aktiviert, wenn das Skript beendet wird.
SendMode, Send, Click, MouseMove, MouseClick, MouseClickDrag
Öffnet den Texteditor und fügt Uhrzeit/Datum durch Senden von F5 ein, während BlockInput eingeschaltet ist. Beachten Sie, dass BlockInput möglicherweise nur funktioniert, wenn das Skript mit Adminrechten ausgeführt wurde.
BlockInput, On Run, notepad WinWaitActive, Unbenannt - Editor Send, {F5} ; Fügt Uhrzeit und Datum ein BlockInput, Off