Section courante

A propos

Section administrative du site

keybd_event

user32.dll Evénément clavier
 

Syntaxe

VOID keybd_event(BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo);

Paramètres

Nom Description
bVk Ce paramètre permet d'indiquer le code de touche virtuel.
bScan Ce paramètre permet d'indiquer le code de balayage matériel de la touche.
dwFlags Ce paramètre permet d'indiquer les aspects du contrôle de l'opération :
Constante Valeur Description
KEYEVENTF_EXTENDEDKEY 0x0001 Cette valeur permet d'indiquer que le code de balayage est précédé par un octet de préfixe ayant la valeur 0xE0 (224) s'il est spécifié.
KEYEVENTF_KEYUP 0x0002 Cette valeur permet d'indiquer que la touche a été relâché. S'il n'est pas spécifié, la touche est désenfoncé.

Description

Cette fonction permet de provoquer un événement d'appui de touche clavier.

Exemple

Voici un exemple permettant de faire clignoter les lumières du clavier (Caps Lock, Num Lock, Scroll Lock) au nombre de 10 fois chacun leurs tours (aussi connu sous le nom de «Keyboard Dancing LED Light Trick») :

  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. #define KEYEVENTF_KEYUP 0x02
  6. #define KEYEVENTF_EXTENDEDKEY 0x01
  7. #define VK_SCROLL 0x91
  8. #define vbKeyCapital 20
  9. #define vbKeyNumLock 144
  10.  
  11. int main()
  12. {
  13.     int I,J;
  14.     for(J = 0; J <= 10; J++) {
  15.         for(I = 0; I <= 2; I++) {
  16.             switch(I) {
  17.                 case 0:
  18.                     keybd_event(vbKeyCapital, MapVirtualKeyA(vbKeyCapital, 0), KEYEVENTF_EXTENDEDKEY | 0, 0);
  19.                     keybd_event(vbKeyCapital, MapVirtualKeyA(vbKeyCapital, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
  20.                     break;
  21.                 case 1:
  22.                     keybd_event(vbKeyNumLock, MapVirtualKeyA(vbKeyNumLock, 0), KEYEVENTF_EXTENDEDKEY | 0, 0);
  23.                     keybd_event(vbKeyNumLock, MapVirtualKeyA(vbKeyNumLock, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
  24.                     break;
  25.                 case 2:
  26.                     keybd_event(VK_SCROLL, MapVirtualKeyA(VK_SCROLL, 0), KEYEVENTF_EXTENDEDKEY | 0, 0);
  27.                     keybd_event(VK_SCROLL, MapVirtualKeyA(VK_SCROLL, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
  28.                     break;
  29.             }
  30.             Sleep(250);
  31.         }
  32.     }
  33.     return 0;
  34. }


Dernière mise à jour : Dimanche, le 6 décembre 2015