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.
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.
[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 |