Folgender Code gibt Informationen zur verwendeten Tastatur in einem Meldungsfeld aus:
Systemweites Überwachen einer Taste
Mittels eines Timers Timer1 ist es möglich, systemweit auf das Drücken einer Taste der Tastatur zu reagieren. Dieses Beispielprogramm reagiert auf die Eingabetaste und Escape:
Ermitteln der vergangenen Zeit seit dem letzten Tastaturereignis
Mittels eines Timers und der Funktion GetAsyncKeyState kann man sehr einfach ermitteln, wie viel Zeit seit dem letzten Tastaturereignis vergangen ist. Dabei werden auch Mausklicks berücksichtigt:
Vertauschen der Funktion der Maustasten
Die API-Funktion SwapMouseButton dient zum Tauschen der Funktion von rechter und linker Maustaste. Im folgenden Beispiel kann in einer CheckBox eingestellt werden, ob die Funktion der beiden Tasten vertauscht werden soll. Beim Beenden des Programms sollte man nach Möglichkeit die Einstellung wieder zurücksetzen:
Anzeigen der gedrückten Tasten
Durch Setzen der KeyPreview-Eigenschaft auf True können Tastatureingaben aller Steuerelemente am Formular überwacht werden. Im folgenden Beispiel werden diese Tasten durch Zeichen in der Titelleiste eines Formulars visualisiert:
Mauszeiger absolut zu einem bestimmten Steuerelement plazieren
Die Prozedur SetMousePosition setzt den Mauszeiger an die in den Parametern x und y zu ReferenceObject absolute Position. Als Skalierungsmodus müssen Pixel verwendet werden:
Deaktivieren der Tastenkombination Strg+Alt+Entf
Die im Folgenden angegebene Funktion CtrlAltDel kann dazu verwendet werden, die Tastenkombination Strg+Alt+Entf zu deaktivieren bzw. wieder zu aktivieren. Dieses Beispiel funktioniert nicht unter Windows NT, 2000 und XP:
Überwachen der absoluten Position des Mauszeigers
Damit folgendes Beispiel zum Ermitteln der globalen Mauskoordinaten (vom Ursprung links oben am Bildschirm) funktioniert, muß ein Timer-Steuerelement mit dem Namen Timer1 verwendet werden, das als Intervall beispielsweise 50 Millisekunden verwendet:
Blockieren von Tastatur und Maus
Das Windows-API stellt eine Funktion zum Blockieren von Tastatur und Maus zur Verfügung. Während der Blockierung reagieren die Maus und die Tastatur nicht. Diese API-Funktion wird nur auf neueren Versionen von Windows unterstützt. Wie aus der Funktionsdeklaration ersichtlich, erwartet BlockInput im Parameter fBlock einen Wert vom Typ BOOL. Unter Visual Basic können daher keine Werte des Typs Boolean verwendet werden. Nachstehendes Listing zeigt die Deklaration der Funktion BlockInput und Beispielaufrufe:
Aufruf von DoEvents nur bei Bedarf
Man sollte DoEvents nicht öfter als unbedingt nötig aufrufen, insbesondere in zeitkritischen Schleifen. Üblicherweise wird daher DoEvents alle Schleifendurchgänge aufgerufen, z. B. wie hier alle 10 Mal:
Wird DoEvents aufgerufen, um eventuell vorhandene Maus- und Tastaturereignisse abarbeiten zu lassen, sollte man mit der API-Funktion GetInputState abfragen, ob überhaupt solche Ereignisse vorliegen:
Der Aufruf könnte folgendermassen erfolgen:
Etwas mehr Kontrolle über den Typ der Nachrichten, die auf ihre Verarbeitung warten, bietet die Funktion GetQueueStatus. Die Prozedur ProcessEvents dient als Ersatz für DoEvents. Wird sie ohne Parameter aufgerufen, wird DoEvents beim Vorliegen beliebiger Nachrichten ausgeführt, sonst nur dann, wenn Nachrichten bestimmter Typen auf ihre Verarbeitung warten: