BlockInput

Deaktiviert oder aktiviert die Fähigkeit des Benutzers, mit dem Computer über Tastatur und Maus zu interagieren.

BlockInput, OnOff
BlockInput, SendMouse
BlockInput, MouseMove  ; [v1.0.43.11+]

Parameter

OnOff

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 die Eingabe wieder.

[v1.1.30+]: Anstelle von On und Off können auch die Dezimalwerte 1 und 0 verwendet werden.

SendMouse

Dieser Modus blockiert Benutzereingaben nur während der Ausführung bestimmter Send- und/oder Mausbefehle. 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 (es sei denn, sie ist noch durch ein vorheriges BlockInput On blockiert).

Mouse: Die Tastatur- und Mauseingaben des Benutzers werden ignoriert, während Click, MouseMove, MouseClick oder MouseClickDrag Mausaktionen ausfü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 ausgeführt hat, wird die Eingabe wieder aktiviert (es sei denn, sie ist noch durch ein vorheriges BlockInput On blockiert).

SendAndMouse: Eine Kombination der beiden obigen Modi.

Default: Schaltet den Send- und Mouse-Modus aus, ändert aber nicht den aktuellen Status der Eingabeblockierung. Zum Beispiel kann BlockInput On nicht durch BlockInput Default deaktiviert werden.

MouseMove [v1.0.43.11+]

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). Außerdem wird das Skript persistent; das heißt, dass ExitApp anstelle von Exit verwendet werden sollte, um dieses Skript zu terminieren. Jedes Mal, wenn das Skript einen Suspend- oder Hotkey-Befehl erreicht, wird geprü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.

Bemerkungen

Alle drei BlockInput-Modi (OnOff, SendMouse und MouseMove) funktionieren unabhängig voneinander. Zum Beispiel ist es jederzeit möglich, BlockInput On und BlockInput Off zu verwenden, 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 Wirkung, 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 verwenden, 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 danach gesendet. Der Verzicht auf BlockInput verhindert auch, dass hängende Tasten umgangen werden müssen, wie im nächsten Absatz beschrieben.

Es kann vorkommen, dass Tasten "hängen bleiben", wenn der Benutzer sie gedrückt hält, während BlockInput aktiviert wird. Dies lässt sich vermeiden, indem man wartet, bis die Tasten losgelassen werden, bevor man BlockInput einschaltet. Zum Beispiel:

^!p::
KeyWait Control  ; Warten, bis die Taste losgelassen wird. Verwende ein KeyWait pro Hotkey-Modifikator.
KeyWait Alt
BlockInput On
; ... Tastendrücke und Mausklicks senden ...
BlockInput Off
return

Die Eingabeblockierung wird automatisch 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 ausgelöst werden, wenn BlockInput eingeschaltet ist. Dazu gehören z.B. MButton (Maus-Hook) und LWin & Space (Tastatur-Hook mit explizitem Präfix anstelle von Modifikatoren $#).

Die Eingabe wird automatisch wieder aktiviert, wenn das Skript beendet wird.

SendMode, Send, Click, MouseMove, MouseClick, MouseClickDrag

Beispiele

Öffnet Notepad 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