Konsole des Parent Process benutzen



  • Hi,

    habe hier ein kleines kosmetisches Problem:
    Ich habe eine Windows Anwendung, die normalerweise kein Konsolenfenster hat. Um aber dennoch Ausgaben in der Konsole machen zu können hole ich mir per AttachConsole() die Konsole des aufrufenden Prozesses (was dann die DOS Konsole ist) und schreibe dann per std::cout in die Konsole des Parent Process. Bevor ich die Konsole wieder freigebe schreibe ich den Namen des aktuellen Verzeichnisses hinein, damit es so aussieht wie der normale Prompt. Allerdings
    gibt FreeConsole() ein newline aus, was dann zu folgender Ausgabe führt:

    `

    d:\tmp>myprog.exe

    myprog.exe V1.2.3

    (Liste der Kommandozeilenoptionen)

    d:\tmp>

    _<< Cursor steht hier statt hinter d:\tmp> in der Zeile darüber

    `

    Gibt´s eine Lösung für dieses Problem?


  • Mod

    FreeConsole gibt kein Newline aus!

    Das wird nicht funktionieren. Die CMD.EXE die hier läuft wird selber "denken" wo Cursorposition und andere Infos stehen. Weil es ja weiß wasausgegeben wurde.
    Denn es arbeitet selbst mit WriteConsole etc. Du vermurkst aber diese Ausgabe und die Positionen durch Dein dazwischenfunken, was normalerweise ja auch nicht passieren dürfte.



  • Ist das tatsächlich so, kann ich mir nicht vorstellen. Ich glaube (würde jedenfalls Sinn machen), dass die Konsole ihre Eigenschaften selbst verwaltet und ihren internen Status je nach Ausgabe selbst aktualisiert. Der Konsole selbst sollte doch egal sein, von welchem Prozess sie ihre darzustellenden Daten bekommt. Schliesslich landet der Cursor ja unterhalb der letzten Zeile und nicht unterhalb der letzten "Originalzeile", bevor die Konsole übernommen wurde.


Anmelden zum Antworten