-
entrée clavier X11
:coucou:,
J'essaie de faire un petit programme en c et j'ai quelque souci pour utiliser la bibliothèque X11. Je voudrai savoir si on peut capter plusieurs touches pressées en même temps.
par exemple si j'appuie sur a et z sont pressés en même temps , je veux les sauvegarder dans une liste.
J'ai bien essayé avec la fonction XLookupKeysym mais je ne détecte que pour une seule touche appuyée.
-
Bonjour
Je ne connais pas X11 (enfin je connais mais je n'ai jamais codé avec). Mais quelque chose me dit qu'avant X11 il y a le clavier d'une part et l'OS de l'autre. Et que je ne pense pas que l'un ou l'autre soient prévu pour "traiter" plusieurs touches à la fois (à l'exception du "maj" mais même là, le clavier prend peut-être en compte maj+x mais ne transmet ensuite que la lettre "X" à l'OS).
Donc une seule touche transmise à l'OS (ou plusieurs touches transmises mais transmises en série) donnera une seule touche captée dans X11 (ou plusieurs touches à suivre)...
-
Bonjour,
Généralement, on repère les pression et les relâchement (sauvegardé avec un tableau de booléen).
En effet, on peut facilement détecter les pression (KeyDown), sauvegardé l'état (vrai pour down) et détecter les relâchement (KeyUp) (false dans le tableau). Le tableau contient une entrée par touche.
Ainsi, votre programme verra 'z' puis 'e' pressées, alors les deux touches sont appuyées en même temps. Ensuite, vous allez voir un relâchement de 'z'... puis un appui sur 'a', alors a et e sont appuyées en même temps.
-
Il faut que tu utilises les XEvent. en gros tu interceptes les éventements qui t'interessent qui seront KeyPress et KeyRelease. Ensuite c'est comme a dit LittleWhite. Tu dois contrôler que toutes les touches de ton choix ont été enfoncés sans avoir été relâché.
-
Merci pour vos réponses :D,
je vais devoir rtfm pour trouver les fonctions qui me permettront de résoudre mon problème.
-
Je ferme cette discussion si j'ai des problèmes au niveau de la programmation j'ouvrirai une autre discussion