Tastatureingabe

In diesem Abschnitt wird beschrieben, wie das System Tastatureingaben generiert und wie eine Anwendung diese Eingaben empfängt und verarbeitet.

In diesem Abschnitt

Name Beschreibung
Informationen über Tastatureingabe Erläutert die Tastatureingabe
Verwenden von Tastatureingaben Behandelt Aufgaben, die mit Tastatureingaben verbunden sind
Referenz zu Tastatureingaben Enthält die API-Referenz.

Funktionen

Name Beschreibung
ActivateKeyboardLayout Legt den Eingabe-Gebietsschemabezeichner (früher als Tastaturlayouthandle bezeichnet) für den aufrufenden Thread oder den aktuellen Prozess fest. Der Eingabe-Gebietsschemabezeichner gibt ein Gebietsschema und das physische Layout der Tastatur an.
BlockInput Verhindert, dass Tastatur- und Mauseingabeereignisse Anwendungen erreichen
EnableWindow Aktiviert oder deaktiviert die Maus- und Tastatureingabe in das angegebene Fenster oder Steuerelement. Wenn die Eingabe deaktiviert ist, empfängt das Fenster keine Eingaben per Mausklick oder Tastendruck. Wenn die Eingabe aktiviert ist, empfängt das Fenster alle Eingaben.
GetActiveWindow Ruft das Fensterhandle des aktiven Fensters ab, das an die Meldungswarteschlange des aufrufenden Threads angefügt ist
GetAsyncKeyState Bestimmt, ob eine Taste zum Zeitpunkt des Aufrufs der Funktion gedrückt ist oder nicht und ob die Taste nach einem Aufruf von GetAsyncKeyState gedrückt wurde
GetFocus Ruft das Handle für das Fenster ab, auf dem der Tastaturfokus liegt, wenn das Fenster an die Meldungswarteschlange des aufrufenden Threads angefügt ist
GetKeyboardLayout Ruft den aktiven Eingabe-Gebietsschemabezeichner (früher als Tastaturlayout bezeichnet) für den angegebenen Thread ab. Wenn der idThread-Parameter null ist, wird der Eingabe-Gebietsschemabezeichner für den aktiven Thread zurückgegeben.
GetKeyboardLayoutList Ruft die Eingabe-Gebietsschemabezeichner (früher als Tastaturlayouthandles bezeichnet) ab, die den aktuellen Eingabegebietsschemas im System entsprechen. Die Funktion kopiert die Bezeichner in den angegebenen Puffer.
GetKeyboardLayoutName Ruft den Namen des aktiven Eingabe-Gebietsschemabezeichners (früher als Tastaturlayout bezeichnet) ab
GetKeyboardState Kopiert die Status der 256 virtuellen Tasten in den angegebenen Puffer
GetKeyNameText Gibt eine Zeichenfolge zurück, die die Namen eines Schlüssels darstellt
GetKeyState Ruft den Status des angegebenen virtuellen Schlüssels ab. Der Status gibt an, ob die Taste gedrückt, nicht gedrückt oder umgeschaltet ist (bei jedem Drücken der Taste abwechselnd ein oder aus).
GetLastInputInfo Ruft die Zeit des letzten Eingabeereignisses ab
IsWindowEnabled Bestimmt, ob das angegebene Fenster für die Maus- und Tastatureingabe aktiviert ist
LoadKeyboardLayout Lädt einen neuen Eingabe-Gebietsschemabezeichner (früher als Tastaturlayout bezeichnet) in das System. Es können mehrere Eingabe-Gebietsschemabezeichner gleichzeitig geladen werden. Es ist jedoch nur einer pro Prozess aktiv. Indem mehrere Eingabe-Gebietsschemabezeichner geladen werden, sind schnelle Wechsel zwischen den Bezeichnern möglich.
MapVirtualKey Übersetzt einen virtuellen Tastencode in einen Scancode oder Zeichenwert bzw. ordnet diesen virtuellen Tastencode zu oder übersetzt einen Scancode in einen virtuellen Tastencode.
Verwenden Sie die MapVirtualKeyEx-Funktion, um ein Handle für das Tastaturlayout anzugeben, das zum Übersetzen des angegebenen Codes verwendet werden soll.
MapVirtualKeyEx Ordnet einen virtuellen Tastencode einem Scancode oder Zeichenwert zu oder übersetzt einen Scancode in einen virtuellen Tastencode. Die Funktion übersetzt die Codes mithilfe der Eingabesprache und eines Eingabe-Gebietsschemabezeichners.
OemKeyScan Ordnet die OEMASCII-Codes 0 bis 0x0FF den OEM-Scancodes und Umschaltzuständen zu. Die Funktion stellt Informationen bereit, mit denen ein Programm OEM-Text an ein anderes Programm senden kann, indem eine Tastatureingabe simuliert wird.
RegisterHotKey Definiert eine systemweite Abkürzungstaste
SendInput Synthetisiert Tastenanschläge sowie Mausbewegungen und -klicks.
SetActiveWindow Aktiviert ein Fenster. Das Fenster muss an die Meldungswarteschlange des aufrufenden Threads angefügt werden.
SetFocus Legt den Tastaturfokus auf das angegebene Fenster fest. Das Fenster muss an die Meldungswarteschlange des aufrufenden Threads angefügt werden.
SetKeyboardState Kopiert ein 256-Byte-Array mit Tastenzuständen in die Tabelle für den Tastatureingabezustand des aufrufenden Threads. Auf diese Tabelle wird auch von den Funktionen GetKeyboardState und GetKeyState zugegriffen. An dieser Tabelle vorgenommene Änderungen wirken sich nicht auf die Tastatureingabe in einem anderen Thread aus.
ToAscii Übersetzt den angegebenen virtuellen Tastencode und den Tastaturzustand in die entsprechenden Zeichen. Die Funktion übersetzt den Code mithilfe der Eingabesprache und des physischen Tastaturlayouts, das durch das Tastaturlayouthandle identifiziert wird.
Verwenden Sie die ToAsciiEx-Funktion, um ein Handle für das Tastaturlayout anzugeben, das zum Übersetzen des angegebenen Codes verwendet werden soll.
ToAsciiEx Übersetzt den angegebenen virtuellen Tastencode und den Tastaturzustand in die entsprechenden Zeichen. Die Funktion übersetzt den Code mithilfe der Eingabesprache und des physischen Tastaturlayouts, das durch den Eingabe-Gebietsschemabezeichner identifiziert wird.
ToUnicode Übersetzt den angegebenen virtuellen Tastencode und den Tastaturzustand in die entsprechenden Unicode-Zeichen.
Verwenden Sie die ToUnicodeEx-Funktion, um ein Handle für das Tastaturlayout anzugeben, das zum Übersetzen des angegebenen Codes verwendet werden soll.
ToUnicodeEx Übersetzt den angegebenen virtuellen Tastencode und den Tastaturzustand in die entsprechenden Unicode-Zeichen
UnloadKeyboardLayout Entlädt einen Eingabe-Gebietsschemabezeichner (früher als Tastaturlayout bezeichnet)
UnregisterHotKey Gibt eine Abkürzungstaste frei, die zuvor vom aufrufenden Thread registriert wurde
VkKeyScanEx Übersetzt ein Zeichen in den entsprechenden virtuellen Tastencode und den Umschaltzustand. Die Funktion übersetzt das Zeichen mithilfe der Eingabesprache und des physischen Tastaturlayouts, das durch den Eingabe-Gebietsschemabezeichner identifiziert wird.

Die folgenden Funktionen sind veraltet.

Funktion Beschreibung
GetKBCodePage Ruft die aktuelle Codepage ab.
keybd_event Synthetisiert einen Tastaturanschlag. Das System kann einen solchen synthetisierten Tastaturanschlag verwenden, um eine WM_KEYUP- oder WM_KEYDOWN-Meldung zu generieren. Der Interrupthandler des Tastaturtreibers ruft die keybd_event-Funktion auf.
VkKeyScan Übersetzt ein Zeichen in den entsprechenden virtuellen Tastencode und den Umschaltzustand für die aktuelle Tastatur

Nachrichten

Name Beschreibung
WM_GETHOTKEY Bestimmt die Abkürzungstaste, die einem Fenster zugeordnet ist
WM_SETHOTKEY Ordnet dem Fenster eine Abkürzungstaste zu. Wenn Benutzer*innen die Abkürzungstaste drücken, wird das Fenster vom System aktiviert.

Benachrichtigungen

Name Beschreibung
WM_ACTIVATE Wird sowohl an das zu aktivierende als auch an das zu deaktivierende Fenster gesendet. Wenn die Fenster dieselbe Eingabewarteschlange verwenden, wird die Nachricht synchron gesendet, zuerst an die Fensterprozedur des Fensters der obersten Ebene, das deaktiviert wird, und dann an die Fensterprozedur des Fensters der obersten Ebene, das aktiviert wird. Wenn die Fenster unterschiedliche Eingabewarteschlangen verwenden, wird die Nachricht asynchron gesendet, sodass das Fenster sofort aktiviert wird.
WM_APPCOMMAND Benachrichtigt ein Fenster, dass der Benutzer ein Anwendungsbefehlsereignis generiert hat, z. B. indem er mit der Maus auf eine Anwendungsbefehlsschaltfläche geklickt oder eine Anwendungsbefehlstaste auf der Tastatur gedrückt hat.
WM_CHAR Wird an das Fenster mit dem Tastaturfokus gesendet, wenn eine WM_KEYDOWN-Meldung von der TranslateMessage-Funktion übersetzt wird. Eine WM_CHAR-Meldung enthält den Zeichencode der gedrückten Taste.
WM_DEADCHAR Wird an das Fenster mit dem Tastaturfokus gesendet, wenn eine WM_KEYUP-Meldung von der TranslateMessage-Funktion übersetzt wird. WM_DEADCHAR gibt einen Zeichencode an, der von einer Tottaste generiert wird. Eine Tottaste ist eine Taste, die ein Zeichen wie die Umlautpunkte generiert, das in Kombination mit einem anderen Zeichen ein zusammengesetztes Zeichen bildet. Beispielsweise wird das Umlaut-O („ö“) generiert, indem erst die Tottaste für das Umlautzeichen und dann die O-Taste gedrückt wird.
WM_HOTKEY Wird gesendet, wenn Benutzer*innen eine von der RegisterHotKey-Funktion registrierte Abkürzungstaste drücken. Die Meldung wird oben in der Meldungswarteschlange platziert, die dem Thread zugeordnet ist, der die Tastenkombination registriert hat.
WM_KEYDOWN Wird an das Fenster mit dem Tastaturfokus gesendet, wenn eine Nicht-Systemtaste gedrückt wird. Eine Nicht-Systemtaste ist eine Taste, die gedrückt wird, wenn nicht die ALT-Taste gedrückt wird.
WM_KEYUP Wird an das Fenster mit dem Tastaturfokus gesendet, wenn eine Nicht-Systemtaste losgelassen wird. Eine Nicht-Systemtaste ist eine Taste, die gedrückt wird, wenn nicht die ALT-Taste gedrückt wird. Es kann sich auch um eine Taste handeln, die gedrückt wird, wenn der Tastaturfokus auf einem Fenster liegt.
WM_KILLFOCUS Wird unmittelbar vor dem Moment an ein Fenster gesendet, in dem dieses den Tastaturfokus verliert
WM_SETFOCUS Wird an ein Fenster gesendet, nachdem der Tastaturfokus auf dieses Fenster gelegt wurde
WM_SYSDEADCHAR Wird an das Fenster mit dem Tastaturfokus gesendet, wenn eine WM_SYSKEYDOWN-Meldung von der TranslateMessage-Funktion übersetzt wird. WM_SYSDEADCHAR gibt den Zeichencode einer Systemtottaste an. Dies ist eine Tottaste, die gedrückt wird, während die ALT-Taste gedrückt gehalten wird.
WM_SYSKEYDOWN Wird an das Fenster mit dem Tastaturfokus gesendet, wenn Benutzer*innen die F10-Taste drücken (wodurch die Menüleiste aktiviert wird) oder bei gedrückter ALT-Taste eine andere Taste drücken. Diese Meldung wird auch dann gesendet, wenn der Tastaturfokus derzeit auf keinem Fenster liegt. In diesem Fall wird die WM_SYSKEYDOWN-Meldung an das aktive Fenster gesendet. Das Fenster, das die Meldung empfängt, kann zwischen diesen beiden Kontexten unterscheiden, indem im lParam-Parameter der Kontextcode überprüft wird.
WM_SYSKEYUP Wird an das Fenster mit dem Tastaturfokus gesendet, wenn Benutzer*innen eine Taste loslassen, die gedrückt wurde, während die ALT-Taste gedrückt gehalten wurde. Diese Meldung wird auch dann gesendet, wenn der Tastaturfokus derzeit auf keinem Fenster liegt. In diesem Fall wird die WM_SYSKEYUP-Meldung an das aktive Fenster gesendet. Das Fenster, das die Meldung empfängt, kann zwischen diesen beiden Kontexten unterscheiden, indem im lParam-Parameter der Kontextcode überprüft wird.
WM_UNICHAR Wird an das Fenster mit dem Tastaturfokus gesendet, wenn eine WM_KEYDOWN-Meldung von der TranslateMessage-Funktion übersetzt wird. Die WM_UNICHAR-Meldung enthält den Zeichencode der gedrückten Taste.

Strukturen

Name Beschreibung
HARDWAREINPUT Enthält Informationen zu einer simulierten Nachricht, die von einem anderen Eingabegerät als einer Tastatur oder Maus generiert wird.
INPUT Enthält Informationen zum Synthetisieren von Eingabeereignissen wie Tastenanschlägen, Mausbewegungen und Mausklicks.
KEYBDINPUT Enthält Informationen zu einem simulierten Tastaturereignis
LASTINPUTINFO Enthält den Zeitpunkt der letzten Eingabe.
MOUSEINPUT Enthält Informationen zu einem simulierten Mausereignis.

Konstanten

Name Beschreibung
Virtual-Key-Codes Die symbolischen Konstantennamen, Hexadezimalwerte und Maus- oder Tastaturentsprechungen für die vom System verwendeten virtuellen Tastencodes. Die Codes sind in numerischer Reihenfolge aufgeführt.

Siehe auch