Auslesen eines Konsolenoutputs über eine GUI



  • Ich möchte die Microsoft Konsolenanwendung Robocopy über eine GUI verwalten.
    Dabei ist es mir wichtig, dass alle Ausgaben, die das Programm in der Konsole macht von meiner App abgefangen werden.

    Lösen würde ich das im Normalfall über Pipes in der Art, die auch funktioniert:

    FILE *handle = _popen(cmd, "rt"); // r=read t=text mode
    
    // Befehlsausgabe holen
    while(fgets(buffer, sizeof(buffer), handle))
    {    
       output += buffer;
    }
    

    Jetzt öffnet sich dabei allerdings das Konsolenfenster, was ich aber vermeiden möchte.

    Zu meiner Frage:
    Gibt es eine saubere Möglichkeit, die Konsolenanwendung in einer GUI versteckt zu starten und dabei den Inhalt der Ausgabe abzufangen?

    Nutze MS Visual Studio 2005. MFC könnte ich dabei verwenden, mir wäre es aber lieber direkt die Win API zu nutzen.


  • Mod



  • Ersteinmal danke für die Antwort. Kurz und sehr informativ.
    CreatePipe() ist denke ich genau das nach dem ich gesucht habe.


Log in to reply