Key infos (getkeystate / getasynckeystate) : utile pour développer des apps nécéssitant la gestion de la frappe clavier

Description

en fait, j'ai développé ce petit outil sans prétention pour m'aider dans deux choses :

-le developpement d'une autre app ou j'avais souvent besoins de tester les valeurs de certaines touches en ASCII et en KeyCodes assez souvent

-la compréhension des API GetKeyState et GetAsyncKeyState (et de la gestion du clavier en général)

Donc le soft vous affiche les valeurs de chaque touche préssée (ASCII, KeyCodes, et les valeurs des GetKeyState et GetAsyncState correspondant)

Vous constaterez qu'il y a pour certaines touches 2 valeurs de KeyCodes (synchrone et asynchrone, je les ai baptisées ainsi parce que ca me paraissait logique, mais ce n'est probablement pas leur vrai nom)

notemment 'CTRL' 'ALT' 'SHIFT' qui a un code touche et un code fonction

J'ai constaté que dans une boucle, pour tester la valeur d'une touche, ex :

do
if getasynckeystate(keycode)< 0 then
textbox = textbox & latouche
end if
doevents
loop

la valeur est testée sans anti rebond (la touche défile a fond)

alors qu'avec :

do
if getasynckeystate(keycode) = -32767 then
textbox = textbox & latouche
end if
doevents
loop

il y a un anti rebond est la touche défile a la fréquence de répétition parametrée pour le clavier

quand on est en parametres regionnaux English, et un clavier qwerty, ca fonctionne bien sur, sauf la touche ALT GR qui n'a pas le même keycode selon le parametre :
en FR : elle a le keycode synchrone de la touche CTRL (17)
en EN : elle a le keycode synchrone de la touche ALT (18)

j'ai pensé que c'est parce qu'au lieu d'utiliser la sequence CTRL/ALT (a quoi correspond ALTGR) il utilisent ALT/CTRL...
Si quelqu'un peut m'éclairer

Par ailleurs, je ne suis toujours pas sûr de la différence entre GetKeyState et GetAsyncKeyState (GetKeyState est il pour tester les touches synchrones genre pression sur CTRL/ALT/SHIFT en meme temps qu'une autre touche?)

si quelqun le sait, ce serait sympa

voila les sources :

Source / Exemple :


Ziiip!

Conclusion :


Bon, j'aimerais en faire l'arme ultime pour le dev. d'apps clavier, donc y inclure la gestion des parametre régionnaux etc... et trouver l'etat de CAPSLOCK/NUMLOCK/SCROLLLOCK/INS sans passer par la statusbar (APIs?)

Si un pro du clavier passe par là, peut il me confier sa science?

Si ce même pro avait des procédure optimisées pour tout ca, des listes de keycodes, je sais pas, des infos sur les différents types de clavier qui existent et leur gestion (jap, chinois, englais...) et la manière dont tout ca est geré, je suis très curieux là-dessus

Merci a vous

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.