3 votes

Convertir une séquence de System.Windows.Forms.Keys en un Char

Existe-t-il un moyen de convertir une séquence de touches représentées par l'énumération Keys (c'est-à-dire System.Windows.Forms.Keys) en un Char. Par exemple : Keys.Oem4 puis Keys.A donne le caractère á. Cela doit exister quelque part dans la WinAPI, car Windows le fait pour moi, lorsque je presse des touches à l'intérieur d'une zone de texte... Je ne sais juste pas où. S'il vous plaît aidez ! merci.

EDIT :

Ce que je veux, c'est enregistrer les touches saisies par l'utilisateur, puis traduire plus tard la séquence de touches en caractères, sans que l'utilisateur ait à tout taper à nouveau, quelque chose comme un macro.

1voto

JaredPar Points 333733

La manière la plus simple de faire cela est de d'abord convertir la valeur Key en un code de clé virtuelle. Cela se fait via KeyInterop.VirtualKeyFromKey. Ensuite, vous pouvez appeler la fonction MapVirtualKey en PInvoke pour convertir la clé en un caractère.

0voto

Patrick Points 141

Je pense que cela pourrait être interne à Windows. Les meilleures informations que je peux trouver sont ici :

https://learn.microsoft.com/fr-fr/windows/win32/inputdev/using-keyboard-input

Fondamentalement, la fenêtre reçoit un message WM_CHAR après l'appel de TranslateMessage sur les messages WM_KEYDOWN etc. reçus dans la boucle de messages. Le message WM_CHAR contient alors le caractère souhaité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X