Partager via


keybd_event fonction (winuser.h)

Synthétise une séquence de touches. Le système peut utiliser une telle séquence de touches synthétisée pour générer un message WM_KEYUP ou WM_KEYDOWN. Le gestionnaire d’interruptions du pilote de clavier appelle la fonction keybd_event.

Note Cette fonction a été remplacée. Utilisez SendInput à la place.
 

Syntaxe

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

Paramètres

[in] bVk

Type : BYTE

Code de clé virtuelle. Le code doit être une valeur comprise entre 1 et 254. Pour obtenir la liste complète, consultez Codes de clé virtuelle.

[in] bScan

Type : BYTE

Code d’analyse matérielle de la clé.

[in] dwFlags

Type : DWORD

Contrôle différents aspects de l’opération de fonction. Ce paramètre peut prendre une ou plusieurs des valeurs suivantes.

Valeur Signification
KEYEVENTF_EXTENDEDKEY
0x0001
Si spécifié, le code d’analyse était précédé d’un octet de préfixe ayant la valeur 0xE0 (224).
KEYEVENTF_KEYUP
0x0002
Si elle est spécifiée, la clé est en cours de libération. Si elle n’est pas spécifiée, la clé est en cours de dépression.

[in] dwExtraInfo

Type : ULONG_PTR

Valeur supplémentaire associée au trait de clé.

Valeur de retour

None

Remarques

Une application peut simuler une pression sur la touche PRINTSCRN pour obtenir un écran instantané et l’enregistrer dans le Presse-papiers. Pour ce faire, appelez keybd_event avec le paramètre bVk défini sur VK_SNAPSHOT.

Exemples

L’exemple de programme suivant bascule la lumière NUM LOCK à l’aide de keybd_event avec une clé virtuelle de VK_NUMLOCK. Il prend une valeur booléenne qui indique si la lumière doit être désactivée (FALSE) ou activée (TRUE). La même technique peut être utilisée pour la touche CAPS LOCK (VK_CAPITAL) et la touche 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 );
   }

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll

Voir aussi