PureBasic

Forums PureBasic
Nous sommes le Dim 21/Juil/2019 1:27

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 
Auteur Message
 Sujet du message: [Résolu] (MapVirtualKey_() International (AZERTY)
MessagePosté: Dim 24/Mar/2019 17:17 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6848
Localisation: IDF (Yvelines)
Bonjour

Ce code renvoie le code ASCII de Q
Code:
Debug Chr(MapVirtualKey_(#PB_Key_A, 1))
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)
viewtopic.php?p=203295#p203295

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: MapVirtualKey_() International (AZERTY)
MessagePosté: Lun 25/Mar/2019 5:06 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3462
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)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: MapVirtualKey_() International (AZERTY)
MessagePosté: Mar 26/Mar/2019 19:24 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 27/Oct/2006 12:19
Messages: 1219
Localisation: Calvados (14)
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:
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:
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

_________________
Image

Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: MapVirtualKey_() International (AZERTY)
MessagePosté: Mer 27/Mar/2019 9:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
falsam a écrit:
Bonjour

Ce code renvoie le code ASCII de Q
Code:
Debug Chr(MapVirtualKey_(#PB_Key_A, 1))
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
Code:
Debug Chr(MapVirtualKey_(#PB_Key_Q, 1))

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: MapVirtualKey_() International (AZERTY)
MessagePosté: Mer 27/Mar/2019 11:30 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6848
Localisation: IDF (Yvelines)
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 ^^

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [Résolu] (MapVirtualKey_() International (AZERTY)
MessagePosté: Mer 27/Mar/2019 14:40 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2153
Localisation: 50200 Coutances
J'ai juste voulu aider.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: MapVirtualKey_() International (AZERTY)
MessagePosté: Ven 29/Mar/2019 4:29 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3462
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...


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye