Compartir a través de


función keybd_event (winuser.h)

Sintetiza una pulsación de tecla. El sistema puede usar este tipo de pulsación de tecla sintetizada para generar un mensaje WM_KEYUP o WM_KEYDOWN. El controlador de interrupción del controlador del teclado llama a la función keybd_event.

Nota Esta función se ha reemplazado. Use SendInput en su lugar.
 

Sintaxis

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

Parámetros

[in] bVk

Tipo: BYTE

Un código de clave virtual. El código debe ser un valor del intervalo de 1 a 254. Para obtener una lista completa, consulte Códigos de clave virtual.

[in] bScan

Tipo: BYTE

Un código de examen de hardware para la clave.

[in] dwFlags

Tipo: DWORD

Controla varios aspectos de la operación de función. Este parámetro puede ser uno o más de los siguientes valores.

Valor Significado
KEYEVENTF_EXTENDEDKEY
0x0001
Si se especifica, el código de examen estaba precedido por un byte de prefijo que tenía el valor 0xE0 (224).
KEYEVENTF_KEYUP
0x0002
Si se especifica, se libera la clave. Si no se especifica, la clave se está deprimiendo.

[in] dwExtraInfo

Tipo: ULONG_PTR

Valor adicional asociado al trazo de clave.

Valor devuelto

None

Observaciones

Una aplicación puede simular una pulsación de la tecla PRINTSCRN para obtener una instantánea de pantalla y guardarla en el Portapapeles. Para ello, llame a keybd_event con el parámetro bVk establecido en VK_SNAPSHOT.

Ejemplos

El siguiente programa de ejemplo alterna la luz NUM LOCK mediante keybd_event con una clave virtual de VK_NUMLOCK. Toma un valor booleano que indica si la luz debe estar desactivada (FALSE) o activada (TRUE). La misma técnica se puede usar para la tecla LOCK CAPS (VK_CAPITAL) y la tecla SCROLL LOCK (VK_SCROLL).


   #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 );
   }

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también