VkKeyScanA, fonction (winuser.h)

[Cette fonction a été remplacée par la fonction VkKeyScanEx . Toutefois, vous pouvez toujours utiliser VkKeyScan si vous n’avez pas besoin de spécifier une disposition de clavier.]

Traduit un caractère en code de clé virtuelle et en état de décalage correspondants pour le clavier actuel.

Syntaxe

SHORT VkKeyScanA(
  [in] CHAR ch
);

Paramètres

[in] ch

Type : TCHAR

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

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 supérieur contient l’état shift, qui peut être une combinaison des bits d’indicateur suivants.

Valeur retournée Description
1
L’une ou l’autre des touches 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

Pour les dispositions de clavier qui utilisent la touche ALT de droite comme touche maj (par exemple, la Français disposition du clavier), l’état shift 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 séquences de touches à partir de la section clavier main uniquement. Par exemple, le caractère « 7 » est traduit en VK_7, et non en VK_NUMPAD7.

VkKeyScan 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 VkKeyScan en tant qu’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. La combinaison 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