Fonction ToAsciiEx (winuser.h)
Traduit le code de touche virtuelle et l’état du clavier spécifiés en caractères correspondants. La fonction traduit le code à 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.
Notes
Cette méthode peut ne pas fonctionner correctement avec certaines dispositions de clavier qui peuvent produire plusieurs caractères (c’est-à-dire des ligatures) et/ou des caractères Unicode supplémentaires sur une seule touche. Il est vivement recommandé d’utiliser les méthodes ToUnicode ou ToUnicodeEx qui gèrent correctement ces cas.
Syntaxe
int ToAsciiEx(
[in] UINT uVirtKey,
[in] UINT uScanCode,
[in, optional] const BYTE *lpKeyState,
[out] LPWORD lpChar,
[in] UINT uFlags,
[in, optional] HKL dwhkl
);
Paramètres
[in] uVirtKey
Type : UINT
Code de clé virtuelle à traduire. Consultez Codes de touche virtuelle.
[in] uScanCode
Type : UINT
Code d’analyse matérielle de la clé à traduire. Le bit d’ordre élevé de cette valeur est défini si la touche est activée (pas enfoncée).
[in, optional] lpKeyState
Type : const BYTE*
Pointeur vers un tableau de 256 octets qui contient l’état actuel du clavier. Chaque élément (octet) du tableau contient l’état d’une clé. Si le bit d’ordre élevé d’un octet est défini, la touche est enfoncée (enfoncée).
Le bit faible, s’il est défini, indique que la clé est activée. Dans cette fonction, seul le bit bascule de la clé DE VERROUILLAGE CAPS est pertinent. L’état bascule des touches NUM LOCK et SCOLL LOCK est ignoré.
[out] lpChar
Type : LPWORD
Pointeur vers la mémoire tampon qui reçoit le caractère traduit (ou deux caractères regroupés dans une seule valeur WORD , où l’octet de faible ordre contient le premier caractère et l’octet d’ordre élevé contient le deuxième caractère).
[in] uFlags
Type : UINT
Ce paramètre doit être 1 si un menu est actif, zéro dans le cas contraire.
[in, optional] dwhkl
Type : HKL
Identificateur de paramètres régionaux d’entrée à utiliser pour traduire le code. 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 : int
La valeur de retour est l’une des valeurs suivantes.
Valeur retournée | Description |
---|---|
|
La clé virtuelle spécifiée n’a aucune traduction pour l’état actuel du clavier. |
|
Un caractère a été copié dans la mémoire tampon. |
|
Deux caractères ont été copiés dans la mémoire tampon. Cela se produit généralement lorsqu’un caractère de touche morte (accentuation ou diacritique) stocké dans la disposition du clavier ne peut pas être composé avec la touche virtuelle spécifiée pour former un caractère unique. |
Notes
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, un éditeur de méthode d’entrée (IME) ou toute autre forme d’entrée.
Les paramètres fournis à la fonction ToAsciiEx peuvent ne pas suffire à traduire le code de la clé virtuelle, car une clé morte précédente est stockée dans la disposition du clavier.
En règle générale, ToAsciiEx effectue la traduction en fonction du code de clé virtuelle. Dans certains cas, toutefois, le bit 15 du paramètre uScanCode peut être utilisé pour faire la distinction entre un appui sur la touche et une libération de touche. Le code d’analyse est utilisé pour traduire les combinaisons de touches ALT+nombre.
Bien que NUM LOCK soit une touche bascule qui affecte le comportement du clavier, ToAsciiEx ignore le paramètre bascule (bit faible) de lpKeyState (VK_NUMLOCK), car le paramètre uVirtKey seul suffit à distinguer les touches de déplacement du curseur (VK_HOME, VK_INSERT, etc.) des touches numériques (VK_DECIMAL, VK_NUMPAD0 - VK_NUMPAD9).
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
Conceptuel
Référence