ENVOI DE TOUCHES DE CLAVIER SANS SAISIE A UNE PLATE-FORME PAR LA LIAISON RS232

benrichl Messages postés 8 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 14 mars 2005 - 21 avril 2004 à 17:33
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007 - 29 avril 2004 à 12:59
J'écris une application qui doit dialoguer avec une plate-forme par l'intermédiaire d'une liaison RS232.J'arrive à me connecter à la plate-forme,à m'authentifier et même à lui signifier le domaine d'activité auquel je voudrais accéder puisqu'il y en a plusieurs sur çà!Après avoir pu accéder au domaine,il va falloir prendre la main en appuiyant sur les touches"CTRL+A".Mon problème c'est que je n'arrive pas à envoyer à l'application ces caractères.J'utilise l'instruction "SendKeys" de VB pour simuler ces touches seulement puisque Sendkeys permet d'exécuter une action directe(écrire la lettre a dans un textbox) et que pour envoyer un caractère via le port série par mscomm,il faut faire mscomm.output="caractère",il y a un problème qui se pose.
J'ai donc voulu contourner le problème en envoyant d'abord "CTRL+A" par sendkeys (SendKeys"^A") dans un textbox pour le récupérer sous forme de caractères et le paser à "mscomm.output".Là aussi je ne reçois rien;la plate-forme ne comprend rien!
Est-ce que quelqu'un sait alors comment envoyer les touches spéciales sans les saisr au clavier par le port série en utilisant bien sûr VB?J'en ai vraiment besoin;aidez-moi SVP!

4 réponses

ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
21 avril 2004 à 18:42
va sur http://www.control.co.kr/dic/ascii.htm et la tu va trouver le code ascii correspondant , je crois bien (a moins que j'ai mal vu) que ctrl a c'est 1
0
benrichl Messages postés 8 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 14 mars 2005
21 avril 2004 à 19:52
Merci pour le lien;je vais de ce pas là-dessus et si çà marche je vous le ferai savoir.Merci!
0
benrichl Messages postés 8 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 14 mars 2005
29 avril 2004 à 12:20
Je suis allé sur le site et j'ai trouvé ce qu'il fallait;je l'ai utilisé et çà a marché mais pas tout de suite car le processeur étant rapide,quand j'envoie le CTRL+A à la plate-forme,elle ne le reconnaît pas.Il a fallu que j'impose un temps seulement après lequel il lui sera passé et çà a pris.Je tenais à sincèrement vous dire merci.
Si je peux me le permettre,je voudrais demander autre chose.Je veux envoyer aussi les commandes:"ESC+F","ESC+Q","ESC+X".Seulement quand j'utilise la commande mscomm.output=chr(27) & "F" ou mscomm.output=chr(27) & "Q" ou mscomm.output=chr(27) & "X",la plate-forme ne les reconnaît pas;mais quand je les passe par l'hyperterminal en saisissant directement ESC+F ou ESC+Q ou ESC+X,la plate-forme les reconnaît.Y aurait-il un autre moyen pour le faire?
Merci d'avance!
Si quelqu'un d'autre connaît un moyen pouvant m'aider également,il pourrait m'en faire part.

Merci bien!
0
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
29 avril 2004 à 12:59
c'est normal que ca marche pas, qd tu envoi mscomm.output=chr(27) & "F" ça veut dire que tu envoie le code "esc" puis le code "f" alors que si tu fait esc F , tu envoie un seul code qui correspond a esc f , l'adresse que je t'ai donné montre que les code de 0 à 127 alors qu'il en existe 255 il faut que tu cgherche le tableau complet de la table ascii
0
Rejoignez-nous