KEYCODE [Résolu]

Signaler
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010
-
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010
-
Je ne suis pas expert en KeyCode et code asccii. Mais ce que j'éssaie de faire semble compliquer. Il faut que je simule l'envoie du POINT du PAVÉ NUMERIQUE et non le point sur le clavier. J'ai récuper les KeyCode et celui du clavier numérique est égal a 110. J'ai regarder la class My.Computer.Keyboard.SendKeys() mais je n'ai pas trouvé comment.

Est-ce que quelqu'un peut m'aider?

Myke

6 réponses

Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

J'ai trouvé une solution en VB 6.0 sur ce site à cette adresse : http://www.vbfrance.com/codes/SIMULER-TOUCHE-WINDOWS-AVEC-KEYBD_EVENT_40420.aspx

Myke
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
Peu importe la valeur du code, recherche parmi les code de touche VB :
Essaye  vbKeyDecimal

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

J'ai déjà essayé cette technique. Le logiciel que je veux controler fait une distinction entre le decimal sur le clavier et le decimal sur le pavé numerique. Comment fait-on pour convertir le keycode. J'ai tenté de faire My.Computer.Keyboard.SendKeys(chr(keys.decimal)) et cela retourne "n"

J'ai recherché sur internet et j'ai appris que chaque touche déclenche un "scancode" est-ce que tu peux m'en dire plus ?

Myke
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Il semble qu'il ne soit aps possible de gérer cela directement en VB.
Il va falloir passer par un appel à une API donc ? Je dois avouer que je ne sait pas laquelle il faut utiliser dans ce cas.
Si un spécialiste de l'API WIN32 passe par la, je lui laisse la main ...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
Bonjour,


Le vrai problème vient du fait que tu utilises le Keycode (110 pour le point du pavé numérique) et 16 pour l'autre... et que tu cherches ensuite à "envoyer" ces valeurs par un sendkeys en passant un chr() qui, lui, transmet des valeurs ascii (différentes des keycodes, donc).


Sendkeys chr(110) enverra le caractère de code ascii 110 .... donc n.... et non le caractère de code (keycode) 110 qui est le point du pavé numérique, dont la valeur ascii est, quant à elle, 46


Ton problème ? autant les 2 points (pavé numérique et autre) ont 2 codes/touche différenciés (110 et 16), autant leur valeur Ascii est la même (46) ... or Sendkeys ne te permet d'utiliser que les valeurs ascii.
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

Merci JMF

Est-ce que la seule solution est de passer par une API ?

Myke