Fonction VkKeyScanExA (winuser.h)

Traduit un caractère en code de clé virtuelle et en état de décalage correspondants. La fonction traduit le caractère à l’aide de la langue d’entrée et de la disposition physique du clavier identifiée par le l’identificateur de paramètres régionaux.

Syntaxe

SHORT VkKeyScanExA(
  [in] CHAR ch,
  [in] HKL  dwhkl
);

Paramètres

[in] ch

Type : TCHAR

Caractère à traduire en code de clé virtuelle.

[in] dwhkl

Type : HKL

Identificateur de paramètres régionaux d’entrée utilisé pour traduire le caractère. Ce paramètre peut être n’importe quel identificateur de paramètres régionaux d’entrée précédemment retourné par la fonction LoadKeyboardLayout .

Valeur retournée

Type : SHORT

Si la fonction réussit, l’octet de bas ordre de la valeur de retour contient le code de clé virtuelle et l’octet d’ordre élevé contient l’état shift, qui peut être une combinaison des bits d’indicateur suivants.

Valeur retournée Description
1
L’une ou l’autre touche MAJ est enfoncée.
2
L’une ou l’autre touche CTRL est enfoncée.
4
L’une ou l’autre touche ALT est enfoncée.
8
La touche Hankaku est enfoncée
16
Réservé (défini par le pilote de disposition du clavier).
32
Réservé (défini par le pilote de disposition du clavier).
 

Si la fonction ne trouve aucune clé qui se traduit par le code de caractère passé, les octets d’ordre inférieur et d’ordre élevé contiennent -1.

Remarques

L’identificateur de paramètres régionaux d’entrée est un concept plus large qu’une disposition de clavier, car il peut également englober un convertisseur de reconnaissance vocale, une méthode d’entrée Rédacteur (IME) ou toute autre forme d’entrée.

Pour les dispositions de clavier qui utilisent la touche ALT de droite comme touche maj (par exemple, la disposition du clavier Français), l’état maj est représenté par la valeur 6, car la touche ALT de droite est convertie en interne en CTRL+ALT.

Les traductions du pavé numérique (VK_NUMPAD0 à VK_DIVIDE) sont ignorées. Cette fonction est destinée à traduire des caractères en frappes à partir de la section clavier main uniquement. Par exemple, le caractère « 7 » est traduit en VK_7, et non en VK_NUMPAD7.

VkKeyScanEx est utilisé par les applications qui envoient des caractères à l’aide des messages WM_KEYUP et WM_KEYDOWN .

Notes

L’en-tête winuser.h définit VkKeyScanEx comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

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