per system gestartete console schließen verhindern



  • einfaches beispiel:

    system("c:\test1.exe")

    nach ausführen von test1.exe soll das konsolenfenster NICHT verschwinden.
    Problem dabei: test1.exe ist nicht von mir erstellt, kann also nicht dort am ende einfach ein getch() reinklatschen.

    auch ein zweiter befehlt mit getch() ruft eine 2. konsole auf die sich dann natürlich auch sofort beendet.



  • Das läuft nicht, das Programm des Anderen kannst du nicht so abändern. Was du allerdings machen kannst:

    1. Du leitest die Ausgabe in eine Datei um und ließt diese dann aus:

    system("C:\\test.exe > test.output");
    string line;
    
    ifstream file ("test.output");
    while(getline(cin,line))
    {
        cout << line << endl;
    }
    
    file.close();
    

    2. Du schreibst eine *.bat-Datei die die test.exe ausführt und noch den Befehl "pause" am Ende drin stehen hat, dann führst du die *.bat-Datei aus.

    MfG SideWinder



  • also ohne den umweg über eine datei geht es definitiv nicht?
    theoretisch müßte es doch mit pipes klappen? aber keine ahnung wie ich das genau realisieren soll ,)

    vorerst behelfe ich mir mal über eine .bat
    das problem an der Sache ist: meine test.exe benötigt als Parameter quotes,
    allerdings liegt diese datei in einem Ordner mit Leerzeichen...
    Klar klappt das folgende nicht in der .bat datei:

    "c:\test programm\test.exe param="text"";


Anmelden zum Antworten