Freigeben über


keybd_event-Funktion (winuser.h)

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.

Hinweis Diese Funktion wurde ersetzt. Verwenden Sie stattdessen die Funktion SendInput.
 

Syntax

void keybd_event(
  [in] BYTE      bVk,
  [in] BYTE      bScan,
  [in] DWORD     dwFlags,
  [in] ULONG_PTR dwExtraInfo
);

Parameter

[in] bVk

Typ: BYTE

Ein Virtueller Schlüsselcode. Der Code muss ein Wert im Bereich 1 bis 254 sein. Eine vollständige Liste finden Sie unter Virtuelle Schlüsselcodes.

[in] bScan

Typ: BYTE

Ein Hardwarescancode für den Schlüssel.

[in] dwFlags

Art: DWORD

Steuert verschiedene Aspekte des Funktionsbetriebs. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.

Wert Bedeutung
KEYEVENTF_EXTENDEDKEY
0x0001
Wenn angegeben, wurde dem Scancode ein Präfixbyte mit dem Wert 0xE0 (224) vorangestellt.
KEYEVENTF_KEYUP
0x0002
Falls angegeben, wird der Schlüssel freigegeben. Wenn nicht angegeben, wird der Schlüssel gedrückt.

[in] dwExtraInfo

Typ: ULONG_PTR

Ein zusätzlicher Wert, der dem Tastenstrich zugeordnet ist.

Rückgabewert

Keine

Bemerkungen

Eine Anwendung kann einen Druck der PRINTSCRN-Taste simulieren, um einen Bildschirm Momentaufnahme abzurufen und in der Zwischenablage zu speichern. Rufen Sie hierzu keybd_event auf, wobei der bVk-Parameter auf VK_SNAPSHOT festgelegt ist.

Beispiele

Das folgende Beispielprogramm schaltet die NUM LOCK-Leuchte mithilfe von keybd_event mit einem virtuellen Schlüssel von VK_NUMLOCK um. Es wird ein boolescher Wert benötigt, der angibt, ob das Licht ausgeschaltet (FALSE) oder ein (TRUE) sein soll. Das gleiche Verfahren kann für die CAPS-LOCK-Taste (VK_CAPITAL) und die SCROLL LOCK-TASTE (VK_SCROLL) verwendet werden.


   #include <windows.h>

   void SetNumLock( BOOL bState )
   {
      BYTE keyState[256];

      GetKeyboardState((LPBYTE)&keyState);
      if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
          (!bState && (keyState[VK_NUMLOCK] & 1)) )
      {
      // Simulate a key press
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | 0,
                      0 );

      // Simulate a key release
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                      0);
      }
   }

   void main()
   {
      SetNumLock( TRUE );
   }

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll

Weitere Informationen