Sperrt/Entsperrt Maus und Tastatur.
BlockInput ( flag )
| flag | $BI_DISABLE (1) = Sperrt Eingaben des Users $BI_ENABLE (0) = Entsperrt Eingaben des Users Die Konstanten sind in "AutoItConstants.au3" definiert. |
| Erfolg: | 1. |
| Fehler: | 0. Bereits aktiviert oder #RequireAdmin wurde nicht verwendet. |
Wenn BlockInput() angewandt ist, können ALT-Tastendrücke nicht gesendet werden!
Die folgende Tabelle zeigt, wie das Verhalten von BlockInput von der Windowsversion abhängt; unabhängig davon wird unter allen Betriebssystemen durch Druck von Ctrl+Alt+Del (Strg+Alt+Entf) die Eingabe wieder ermöglicht (Windows API Feature).
| Betriebssystem | "BlockInput()"-Resultate |
| Windows XP | Benutzereingaben blockiert. AutoIt kann Maus- und Tastatureingaben simulieren. |
| Windows Vista und neuer | Die Benutzereingabe wird blockiert, wenn #RequireAdmin verwendet wird. AutoIt kann Maus- und Tastatureingaben simulieren. |
#RequireAdmin
#include "Extras\HelpFileInternals.au3"
#include <AutoItConstants.au3>
Example()
Func Example()
; Startet den Editor
Run("notepad.exe")
; Wartet maximal 10 Sekunden bis das Editorfenster erscheint.
Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
; Ruft das Steuerelement ab, das den Tastaturfokus in Notepad hat.
Local $sEditControl = ControlGetFocus($hWnd)
; Deaktiviert die Benutzereingaben durch die Maus und Tastatur.
BlockInput($BI_DISABLE)
; Tippen hat keine Auswirkung
; Wartet 2 Sekunden
Sleep(2000)
; Sendet die 'F5'-Taste an das Edit-Control des Editors um das Datum und die Uhrzeit anzuzeigen.
; Das Handle welches durch WinWait zurückgegeben wurde, wird für den "title" Parameter von ControlSend verwendet.
; Der Befehl „controlSend“ wird auch dann ausgeführt, wenn „BlockInput()“ deaktiviert ist.
ControlSend($hWnd, "", $sEditControl, "{F5}")
; Aktiviert die Benutzereingaben durch die Maus und Tastatur.
BlockInput($BI_ENABLE)
; Tippen hat keine Auswirkung
; Wartet 4 Sekunden, um zu prüfen, ob die Eingabe aktiviert ist
Sleep(4000)
_NotepadForceClose($hWnd)
EndFunc ;==>Example