Textausgaben von HyperTerminal auswerten

  • Hallo zusammen,

    ich möchte mithilfe von HyperTerminal mit dem Consolport von Geräten kommunizieren.
    Da ich bisher noch keine funktionierende Lösung gefunden habe, die Textausgabe von HyperTerminal zu lesen, baue ich immer Sleep-Anweisungen oder Messageboxen ein, ehe ich meinen nächsten Befehl abschicke.
    Das kann's aber nicht sein.
    Hat jemand eine funktionierende Lösung für das Problem?
    Vorschläge, die dann doch nicht funktionierten habe ich bei meiner bisherigen Suche reichlich gefunden;
    auch den Rat es mit einer anderen Programmiersprache zu versuchen.

    Gruß, HEKI.

  • Bist du auf Hyperterminal festgelegt?
    Ich frage deswegen, weil das "Textfeld" in Hyperterminal nicht ohne weiteres auszulesen ist. Mit Controlsend() kann man zwar Nachrichten hinschicken, aber nicht von dort lesen. Ähnlich wie bei den Java-basierten Chatprogrammen.
    Ggf funktioniert es bei anderen Terminalprogrammen. Wahrscheinlich ist es aber einfacher, direkt den COM-Port zu schreiben oder zu lesen.
    Ich gehe davon aus, daß du sowieso nur "einfache" Kommandos senden und die antwort empfangen willst.
    ciao
    Andy

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (25. Juni 2009 um 18:56)

  • Hi Leute also dies ist mal ein Versuch.
    Leider habe ich unter Vista kein HyperTerminal mehr! :cursing:
    Dieser Versuch ist mit Notepade.

    Spoiler anzeigen
    [autoit]

    $Title = "Unbenannt - Editor"

    [/autoit] [autoit][/autoit] [autoit]

    WinActivate($Title)
    WinWait($Title)
    $text = WinGetText($Title, "")

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "Ausgabe", $text)

    [/autoit]

    Das ganze ist nur erstmal ohne Refresh! Soll ja erstmal nur ein Test sein.
    Die Variable $Title muß nur durch die Titelleiste von Hyperterminal ersetzt werden.

    Ich suche mal Hyperterminal.

    MfG
    Der_Doc

  • Hab mich mal umgeschaut.Terminalprogramme gibts wie Sand am Meer, aber die meisten sind nicht gerade gesprächig.
    Aber ich habe eine Methode gefunden, den "Text" bzw die Terminalbefehle zu lesen, und zwar aus der LOG-Datei
    Schau dir mal das ZOC von Emtec an, hat auch eine Scriptsprache, leider nicht per COM, sondern nur per DDE anzusprechen. Schreibt eine Logdatei mit allem IN/OUTPUT, die brauchst du nur auszulesen.
    Oder du kannst per controlsend einen Befehl an ZOC senden, bei dem der aktuelle Puffer in die Zwischenabllage geschrieben wird, und diese kannst du per Autoit bearbeiten.
    Also per controlsend den Modembefehl senden, nach einer Sekunde wieder mit controlsend den Terminal-Puffer in die Zwischenablage schreiben, von dort mit clipget() auslesen und gucken was passsiert ist.
    viel Spass dabei^^

    ciao
    Andy

  • Der_Doc
    genau das funktioniert leider nicht, weder mit controlgettext() noch mit controlcommand()

  • Kenne mich zwar nicht Hyper Terminal aus aber unter Übertragung kannst du anscheinend auch eine Textdatei erstellen lassen die du dann einfach ausliest.

  • Ja das mit der Texdatei ist glaube ich möglich. Es ist ja nur die Frage ob man direkt auf die "Ausgabe" reagieren möchte.

    Mh das das net geht ist natürlich schade 8|
    Aber wir geben net auf, irgendwie geht es immer.


    MfG
    Der_Doc

    3 Mal editiert, zuletzt von Der_Doc (26. Juni 2009 um 09:14)

  • Ich habe ausführliche Informationen zum direkten Programmieren der COM-Ports bekommen.
    Wenn das funktioniert ist es sogar eine bessere Lösung als HyperTerminal.

    Vielen Dank erstmal für die bisherigen Antworten!