Section courante

A propos

Section administrative du site

keybd_event

user32.dll Evénément clavier
Windows NT 4+, 2000, XP, 2003

Syntaxe

Declare Sub keybd_event Lib "user32.dll" ( ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

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 &H0001 Cette valeur permet d'indiquer que le code de balayage est précédé par un octet de préfixe ayant la valeur &HE0 (224) s'il est spécifié.
KEYEVENTF_KEYUP &H0002 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. Option Explicit
  2.  
  3. Private Const KEYEVENTF_KEYUP = &H2
  4. Private Const KEYEVENTF_EXTENDEDKEY = &H1
  5. Private Const VK_SCROLL = &H91
  6.  
  7. Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  8. Private Declare Function MapVirtualKeyA Lib "user32" (ByVal wCode As Long, ByVal wMapType As Long) As Long
  9. Private Declare Function Sleep Lib "kernel32" (ByVal dwmilliseconds As Long) As Long
  10.  
  11. Sub Main()
  12.     Dim I, J As Integer
  13.     For J = 0 To 10
  14.         For I = 0 To 2
  15.             Select Case I
  16.                 Case 0:
  17.                     Call keybd_event(vbKeyCapital, MapVirtualKeyA(vbKeyCapital, 0), KEYEVENTF_EXTENDEDKEY Or 0, 0)
  18.                     Call keybd_event(vbKeyCapital, MapVirtualKeyA(vbKeyCapital, 0), KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
  19.                 Case 1:
  20.                     Call keybd_event(vbKeyNumlock, MapVirtualKeyA(vbKeyNumlock, 0), KEYEVENTF_EXTENDEDKEY Or 0, 0)
  21.                     Call keybd_event(vbKeyNumlock, MapVirtualKeyA(vbKeyNumlock, 0), KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
  22.                 Case 2:
  23.                     Call keybd_event(VK_SCROLL, MapVirtualKeyA(VK_SCROLL, 0), KEYEVENTF_EXTENDEDKEY Or 0, 0)
  24.                     Call keybd_event(VK_SCROLL, MapVirtualKeyA(VK_SCROLL, 0), KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
  25.             End Select
  26.             Call Sleep(250)
  27.         Next I
  28.    Next J
  29. End Sub


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