Bonjour,

Je sais que lu comme ça, le titre n'est pas très compréhensible, mais je m'explique :

Quand j'utilise une touche dite "non-ordinaire" (, ; : ! * ù ^$ etc..) le keycode et le keydata avec le .toString() me retournent des chaînes de type "Oem6" "OemPeriod" etc.. (pour la touche espace c'est "Space")

C'est la que ma question devrait s’éclaircir : A partir de ces éléments, en dehors de toute utilisation d’événements, y aurait-il un moyen de passer de "OemQuestion" à 191 par exemple, tout en ayant le caractère ":".

J'aimerai éviter de tout taper en If, ça serait pas mal, il doit bien y avoir une API pour ça ou une fonction, mais si il n'y a pas le choix je le ferai...

Merci par avance.


PS : Une question a part (je pourrai créer un sujet a part si il le faut)
Il y a-t-il moyen de faire la différence entre Shift/Alt/Ctrl Gauche/Droit ?


EDIT :

J'ai enfin trouvé le code pour passer des "OemTruc" à un code touche !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Dim kc As KeysConverter = New KeysConverter()
Dim o As Object = kc.ConvertFromString("OemPeriod") 'String de la touche en question
Dim keyCode As Keys = CType(o, Keys)
Il me reste le problème de la conversion en un caractère...
J'ai essayé le .ConvertToString() et le ChrW() mais ca me retourne un truc différent de la touche d'origine...