dans ma fonction de "callback" JournalRecordProc(), je traite les
messages WM_KEYDOWN
Pour afficher le nom de la touche frappée au clavier, j'utilse
GetKeyNameText() avec les bons bits 16-23 et 24 comme il faut.
Tout ça fonctionne correctement. Les noms des touches frappées sont
affichées correctement (c'est à dire en majuscule car la fonction
GetKeyNameText() ne prend en compte que le scan code).
Cependant, j'ai des problèmes sur certaines touches. Notamment les
flêches vers le haut et vers le bas. la touche 'del' 'fin' 'Inser'
'debut de ligne' etc... en fait, j'ai l'impression que c'est toutes les
touches qui se trouvent entre le clavier standard et le clavier
numérique. Bref, je ne vois pas trop sur quel paramètre agir pour
corriger ce problème.
J'ai bien chargé le bon keyboard pourtant (j'ai vérifié c'est du
français standard)...
le tab, caps lock, espace, shift, F1..F12 fonctionnent toutes. AltGr
aussi. Alt ne fonctionne pas mais je crois que c'est à cause du type du
message (il faut traiter les messages WM_SYSKEYDOWN visiblement).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian ASTOR
AG a écrit:
Tout ça fonctionne correctement. Les noms des touches frappées sont affichées correctement (c'est à dire en majuscule car la fonction GetKeyNameText() ne prend en compte que le scan code).
Non, GetKeyNameText() affiche bien le nom complet (je ne vois pas le rapport avec les majuscules...) ("Espace", "Entrée", "Insère", "Suppr" ...)
Cependant, j'ai des problèmes sur certaines touches. Notamment les flêches vers le haut et vers le bas. la touche 'del' 'fin' 'Inser' 'debut de ligne' etc... en fait, j'ai l'impression que c'est toutes les touches qui se trouvent entre le clavier standard et le clavier numérique. Bref, je ne vois pas trop sur quel paramètre agir pour corriger ce problème.
Parce que ce sont des extended keys. Il faut tester le HIBYTE de paramH de la struct EVENTMSG.
AG a écrit:
Tout ça fonctionne correctement. Les noms des touches frappées sont
affichées correctement (c'est à dire en majuscule car la fonction
GetKeyNameText() ne prend en compte que le scan code).
Non, GetKeyNameText() affiche bien le nom complet (je ne vois pas le
rapport avec les majuscules...)
("Espace", "Entrée", "Insère", "Suppr" ...)
Cependant, j'ai des problèmes sur certaines touches. Notamment les
flêches vers le haut et vers le bas. la touche 'del' 'fin' 'Inser'
'debut de ligne' etc... en fait, j'ai l'impression que c'est toutes les
touches qui se trouvent entre le clavier standard et le clavier
numérique. Bref, je ne vois pas trop sur quel paramètre agir pour
corriger ce problème.
Parce que ce sont des extended keys.
Il faut tester le HIBYTE de paramH de la struct EVENTMSG.
Tout ça fonctionne correctement. Les noms des touches frappées sont affichées correctement (c'est à dire en majuscule car la fonction GetKeyNameText() ne prend en compte que le scan code).
Non, GetKeyNameText() affiche bien le nom complet (je ne vois pas le rapport avec les majuscules...) ("Espace", "Entrée", "Insère", "Suppr" ...)
Cependant, j'ai des problèmes sur certaines touches. Notamment les flêches vers le haut et vers le bas. la touche 'del' 'fin' 'Inser' 'debut de ligne' etc... en fait, j'ai l'impression que c'est toutes les touches qui se trouvent entre le clavier standard et le clavier numérique. Bref, je ne vois pas trop sur quel paramètre agir pour corriger ce problème.
Parce que ce sont des extended keys. Il faut tester le HIBYTE de paramH de la struct EVENTMSG.
AG
Christian ASTOR wrote:
AG a écrit:
Tout ça fonctionne correctement. Les noms des touches frappées sont affichées correctement (c'est à dire en majuscule car la fonction GetKeyNameText() ne prend en compte que le scan code).
Non, GetKeyNameText() affiche bien le nom complet (je ne vois pas le rapport avec les majuscules...) ("Espace", "Entrée", "Insère", "Suppr" ...)
Ce que je voulais dire c'est que 'a' et 'A' ont le même scan code. Ce qui les différencie, c'est le fait qu'on ait utilisé la touche SHIFT en plus pour 'A'. Et cette différence, je ne pense pas que GetKeyNameText() le fasse tout seul. En me relisant je me rends compte que je me suis mal exprimé.
Cependant, j'ai des problèmes sur certaines touches. Notamment les flêches vers le haut et vers le bas. la touche 'del' 'fin' 'Inser' 'debut de ligne' etc... en fait, j'ai l'impression que c'est toutes les touches qui se trouvent entre le clavier standard et le clavier numérique. Bref, je ne vois pas trop sur quel paramètre agir pour corriger ce problème.
Parce que ce sont des extended keys. Il faut tester le HIBYTE de paramH de la struct EVENTMSG.
pfff, je vais me coucher. A force de lire et relire cette doc je mélange tout. Je zappais systématiquement les lignes qui parlais du repeat count parce que je ne m'y intéressait pas. Hors paramH contient le repeat count, ET le flag des extended keys, sur le dernier bit. Merci bien...
En fait, j'ai finalement changé mon filter WH_JOURNALRECORD pour un filtre WH_KEYBOARD qui lui fonctionne parfaitement. (Je me suis largement inspiré de tous tes posts à ce sujet d'ailleurs).
Christian ASTOR wrote:
AG a écrit:
Tout ça fonctionne correctement. Les noms des touches frappées sont
affichées correctement (c'est à dire en majuscule car la fonction
GetKeyNameText() ne prend en compte que le scan code).
Non, GetKeyNameText() affiche bien le nom complet (je ne vois pas le
rapport avec les majuscules...)
("Espace", "Entrée", "Insère", "Suppr" ...)
Ce que je voulais dire c'est que 'a' et 'A' ont le même scan code. Ce
qui les différencie, c'est le fait qu'on ait utilisé la touche SHIFT en
plus pour 'A'. Et cette différence, je ne pense pas que GetKeyNameText()
le fasse tout seul. En me relisant je me rends compte que je me suis mal
exprimé.
Cependant, j'ai des problèmes sur certaines touches. Notamment les
flêches vers le haut et vers le bas. la touche 'del' 'fin' 'Inser'
'debut de ligne' etc... en fait, j'ai l'impression que c'est toutes
les touches qui se trouvent entre le clavier standard et le clavier
numérique. Bref, je ne vois pas trop sur quel paramètre agir pour
corriger ce problème.
Parce que ce sont des extended keys.
Il faut tester le HIBYTE de paramH de la struct EVENTMSG.
pfff, je vais me coucher. A force de lire et relire cette doc je mélange
tout. Je zappais systématiquement les lignes qui parlais du repeat count
parce que je ne m'y intéressait pas. Hors paramH contient le repeat
count, ET le flag des extended keys, sur le dernier bit. Merci bien...
En fait, j'ai finalement changé mon filter WH_JOURNALRECORD pour un
filtre WH_KEYBOARD qui lui fonctionne parfaitement. (Je me suis
largement inspiré de tous tes posts à ce sujet d'ailleurs).
Tout ça fonctionne correctement. Les noms des touches frappées sont affichées correctement (c'est à dire en majuscule car la fonction GetKeyNameText() ne prend en compte que le scan code).
Non, GetKeyNameText() affiche bien le nom complet (je ne vois pas le rapport avec les majuscules...) ("Espace", "Entrée", "Insère", "Suppr" ...)
Ce que je voulais dire c'est que 'a' et 'A' ont le même scan code. Ce qui les différencie, c'est le fait qu'on ait utilisé la touche SHIFT en plus pour 'A'. Et cette différence, je ne pense pas que GetKeyNameText() le fasse tout seul. En me relisant je me rends compte que je me suis mal exprimé.
Cependant, j'ai des problèmes sur certaines touches. Notamment les flêches vers le haut et vers le bas. la touche 'del' 'fin' 'Inser' 'debut de ligne' etc... en fait, j'ai l'impression que c'est toutes les touches qui se trouvent entre le clavier standard et le clavier numérique. Bref, je ne vois pas trop sur quel paramètre agir pour corriger ce problème.
Parce que ce sont des extended keys. Il faut tester le HIBYTE de paramH de la struct EVENTMSG.
pfff, je vais me coucher. A force de lire et relire cette doc je mélange tout. Je zappais systématiquement les lignes qui parlais du repeat count parce que je ne m'y intéressait pas. Hors paramH contient le repeat count, ET le flag des extended keys, sur le dernier bit. Merci bien...
En fait, j'ai finalement changé mon filter WH_JOURNALRECORD pour un filtre WH_KEYBOARD qui lui fonctionne parfaitement. (Je me suis largement inspiré de tous tes posts à ce sujet d'ailleurs).