KEYCODE

Résolu
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010 - 29 janv. 2008 à 23:47
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010 - 30 janv. 2008 à 17:56
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

cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
30 janv. 2008 à 17:56
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 janv. 2008 à 00:11
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)
0
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
30 janv. 2008 à 01:18
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
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
30 janv. 2008 à 08:06
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 ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
30 janv. 2008 à 08:21
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.
0
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
30 janv. 2008 à 15:40
Merci JMF

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

Myke
0
Rejoignez-nous