Stdout einer Datei lesen

  • Hallo,
    ich habe mal wieder ein kleines Problem.
    Ich möchte, das mein AutoIt Skript den Stdout meines C++ Skripts lesen kann.
    Der Grund dafür ist, das ich komplexe Berechnungen (z.B. x^x^x oder x!) in C++ Skripten kann und mir damit eine
    Zeitersparnis erhoffe.
    Leider hab ich absolut keinen Plan, wie ich rangehen soll. Habs schon mit $STDOUT_CHILD bei der Funktion Run() versucht, aber da weiß ich leider auch nicht mehr weiter.
    Ich betone nochmal, dass ich damit nichts illegales machen möchte, nur eine "simple" kommunikation zwischen AutoIt und C++.
    MfG. PrideRage

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

    Einmal editiert, zuletzt von PrideRage (6. März 2011 um 17:53)

    • Offizieller Beitrag

    Erstelle doch mit deinem C++ Programm eine Systemvariable (Env) in der du deine Ergebnisse parkst. Mit EnvGet() kannst du dir die Werte dann im AutoIt Skript einlesen.
    Falls es mit C++ nicht möglich sein sollte eine eigene Systemvariable zu setzen (kann ich mir eigentlich nicht vorstellen), kannst du ja auch TEMP dafür nutzen.
    Nur andersrum geht es leider nicht. Die Ersteller von AutoIt haben uns die Tür zum Schreiben in Systemvariablen (warum auch immer) verschlossen. Zumindest bieten die Standardfunktionen dazu keine Möglichkeit.

  • BugFix : Das ist nicht ganz korrekt. Du kannst alle Variablen verändern, aber die Änderungen gelten nur für die Kindprozesse, also alles, was du per Run startest.

    PrideRage: Um Berechnungen durchzuführen, würde ich nicht ein extra Programm erstellen und starten, sondern eher eine DLL. Dann hast du auch eine klar definierte Schnittstelle und musst dich nicht mit Stdout bzw. EnvGet rumärgern.