Page 1 sur 1
[Résolu] (MapVirtualKey_() International (AZERTY)
Publié : dim. 24/mars/2019 17:17
par falsam
Bonjour
Ce code renvoie le code ASCII de Q
Comment puis obtenir la bonne valeur ?
Précision : Je ne souhaite pas avoir une solution utilisant la bibliothèque KeyBoard car je ne suis pas dans un contexte 2d ou 3d
Merci d'avance
■ Meilleure solution (
Window uniquement)
https://www.purebasic.fr/french/viewtop ... 95#p203295
Re: MapVirtualKey_() International (AZERTY)
Publié : lun. 25/mars/2019 5:06
par Ollivier
Tu peux faire un tableau de traduction avec GetKeyNameText_()
Le 1er param sert d'entrée
*Buffer = AllocateMemory(32)
Param1 = ((Entree & $FF) << 16) | $1000000
Param2 = *Buffer
Param3 = 16
ou bien traduire directement.
Le plus "rapide" c'est plusieurs tableau de 256 cellules :
Tableau1 : résultats temps réels clavier et boutons souris avec bit de bascule (GetAsyncKeyboard() ).
Tableau2 : valeurs équivalentes en local
Tableau3 : horloges individuelles (dans le cas des frappes de texte)
Tableau4 : méthodes/fonctions à appeler si non 0 (programmation des touches)
Re: MapVirtualKey_() International (AZERTY)
Publié : mar. 26/mars/2019 19:24
par TazNormand
Salut Falsounet,
Ton problème vient, je pense, du fait que PB considère le clavier comme étant par défaut en QWERTY. En utilisant MapVirtualKeyEx_() à la place de MapVirtualKey_(), tu peux forcer le code "langage" :
Code : Tout sélectionner
Debug Hex(GetKeyboardLayout_(0),#PB_Word)
kbdLyt=GetKeyboardLayout_(0)
Debug Chr(MapVirtualKey_(#PB_Key_A, 1))
Debug Chr(MapVirtualKeyEx_(#PB_Key_A, 1,kbdLyt))
Debug ""
Debug "QWERTY forcé"
Debug Chr(MapVirtualKeyEx_(#PB_Key_A, 1,$0409))
Debug Chr(MapVirtualKeyEx_(#PB_Key_Z, 1,$0409))
Debug Chr(MapVirtualKeyEx_(#PB_Key_Q, 1,$0409))
Debug Chr(MapVirtualKeyEx_(#PB_Key_S, 1,$0409))
Debug Chr(MapVirtualKeyEx_(#PB_Key_W, 1,$0409))
Debug ""
Debug "AZERTY (par défaut sur mon clavier)"
Debug Chr(MapVirtualKeyEx_(#PB_Key_A, 1, kbdLyt))
Debug Chr(MapVirtualKeyEx_(#PB_Key_Z, 1, kbdLyt))
Debug Chr(MapVirtualKeyEx_(#PB_Key_Q, 1, kbdLyt))
Debug Chr(MapVirtualKeyEx_(#PB_Key_S, 1, kbdLyt))
Debug Chr(MapVirtualKeyEx_(#PB_Key_W, 1, kbdLyt))
Code : Tout sélectionner
40C
Q
Q
QWERTY forcé
A
Z
Q
S
W
AZERTY (par défaut sur mon clavier)
Q
W
A
S
Z
Les codes Layout Clavier de Microsoft son visibles sur
ce lien
Re: MapVirtualKey_() International (AZERTY)
Publié : mer. 27/mars/2019 9:11
par Micoute
falsam a écrit :Bonjour
Ce code renvoie le code ASCII de Q
Comment puis obtenir la bonne valeur ?
Précision : Je ne souhaite pas avoir une solution utilisant la bibliothèque KeyBoard
Merci d'avance
il suffit d'utiliser le code ascii renvoyé, c'est à dire pour cette touche
Re: MapVirtualKey_() International (AZERTY)
Publié : mer. 27/mars/2019 11:30
par falsam
Merci Tazou c'est la meilleure solution pour window.
Ollivier a écrit :Le plus "rapide" c'est plusieurs tableau de 256 cellules
Ollivier merci. Pour une solution multiplate-forme ca serait idéal.
Micoute on est d'accord que tu es hors sujet ^^
Re: [Résolu] (MapVirtualKey_() International (AZERTY)
Publié : mer. 27/mars/2019 14:40
par Micoute
J'ai juste voulu aider.
Re: MapVirtualKey_() International (AZERTY)
Publié : ven. 29/mars/2019 4:29
par Ollivier
Falsam a écrit :Ollivier a écrit :Le plus "rapide" c'est plusieurs tableau de 256 cellules
Ollivier merci. Pour une solution multiplate-forme ca serait idéal.
Je ne sais pas. Une solution qui n'exclut ni une frappe correcte de traitement de texte ni une acquisition directe de touche, oui. Une solution multi-plateforme, c'est moins sûr...