GetKeyNameTextA, fonction (winuser.h)

Récupère une chaîne qui représente le nom d’une clé.

Syntaxe

int GetKeyNameTextA(
  [in]  LONG  lParam,
  [out] LPSTR lpString,
  [in]  int   cchSize
);

Paramètres

[in] lParam

Type : LONG

Deuxième paramètre du message clavier (par exemple , WM_KEYDOWN) à traiter. La fonction interprète les positions de bits suivantes dans l’objet lParam.

Bits Signification
16-23 Code d’analyse. La valeur dépend de l’OEM.
24 Indique si la touche est une touche étendue, telle que les touches ALT et CTRL de droite qui s’affichent sur un clavier amélioré à 101 ou 102 touches. S’il s’agit d’une touche étendue, la valeur est de 1 ; sinon, elle est de 0.
25 « Ne vous en souciez pas » bit. L’application appelant cette fonction définit ce bit pour indiquer que la fonction ne doit pas faire la distinction entre les touches CTRL gauche et droite et MAJ, par exemple.

Pour plus d’informations, consultez Indicateurs de message de frappe.

[out] lpString

Type : LPTSTR

Mémoire tampon qui recevra le nom de la clé.

[in] cchSize

Type : int

Longueur maximale, en caractères, du nom de clé, y compris le caractère null de fin. (Ce paramètre doit être égal à la taille de la mémoire tampon pointée par le paramètre lpString .)

Valeur retournée

Type : int

Si la fonction réussit, une chaîne terminée par null est copiée dans la mémoire tampon spécifiée, et la valeur de retour correspond à la longueur de la chaîne, en caractères, sans compter le caractère null de fin.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Le format de la chaîne de nom de clé dépend de la disposition actuelle du clavier.

La disposition du clavier conserve une liste de noms sous la forme de chaînes de caractères pour les touches dont les noms sont plus longs qu’un seul caractère. Le nom de la clé est traduit en fonction de la disposition du clavier actuellement active. Par conséquent, la fonction peut retourner des résultats différents pour différentes dispositions de clavier.

Le nom d’une clé de caractère est le caractère lui-même. Les noms des clés mortes sont énoncés dans leur intégralité.

Cette méthode peut ne pas fonctionner correctement avec certaines dispositions de clavier qui produisent plusieurs caractères (c’est-à-dire des ligatures) et/ou des caractères Unicode supplémentaires imprimés sur une seule touche. En outre, les clés qui sont mappées à « A ». Les codes de clé virtuelle Z sont traduits en majuscules « A ». Caractères Z' quelle que soit la disposition actuelle du clavier. Dans ce cas, utilisez les méthodes ToUnicode ou ToUnicodeEx .

L’en-tête winuser.h définit GetKeyNameText 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

   
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

Entrées du clavier

Dispositions du clavier

Exemples de disposition du clavier

ToUnicode

ToUnicodeEx