ENVOI DE TOUCHES DE CLAVIER SANS SAISIE A UNE PLATE-FORME PAR LA LIAISON RS232
benrichl
Messages postés8Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention14 mars 2005
-
21 avril 2004 à 17:33
ultraxa
Messages postés127Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention21 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!
A voir également:
ENVOI DE TOUCHES DE CLAVIER SANS SAISIE A UNE PLATE-FORME PAR LA LIAISON RS232
ultraxa
Messages postés127Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention21 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
benrichl
Messages postés8Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention14 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.
ultraxa
Messages postés127Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention21 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