QProcess -> Tastendruck übermitteln
Verfasst: 21. Oktober 2011 09:13
Hallo Qt-Gemeinde.
Ich habe folgendes Problem:
Derzeit verwende ich einen QProcess um eine externe Anwendung zu starten, z.B. die Windows-Console "cmd.exe".
proc->start("cmd.exe", QStringList() << "/c" << "dir");
Um die Ein- / Ausgabe der zu verstehen habe ich ich einfach mal das Kommando "dir" abgesetzt.
Das klappt auch alles wunderbar. Der Prozess wird angelegt, gestartet und die Ausgabe kann ich mittels readAllStandardOutput() auslesen.
Allerdings machen Aufrufe wie z.B. "time" Probleme:
proc->start("cmd.exe", QStringList() << "/c" << "time");
Hier wartet die Konsole auf einen Tastendruck (ENTER), um die aktuelle Zeit auszugeben bzw. allgemein eine Ausgabe zu generieren und den Prozess korrekt zu beenden.
Jetzt ist die Frage: Wie teile ich dem Prozess bzw. dem CMD-Fenster den Tastendruck mit? Geht dies evtl. über das Kommando write()? Mittels read() erreiche ich jedenfalls die Ausgabe der Konsole (stdout)...
Vielen Herzlichen Dank im Voraus.
Ich habe folgendes Problem:
Derzeit verwende ich einen QProcess um eine externe Anwendung zu starten, z.B. die Windows-Console "cmd.exe".
proc->start("cmd.exe", QStringList() << "/c" << "dir");
Um die Ein- / Ausgabe der zu verstehen habe ich ich einfach mal das Kommando "dir" abgesetzt.
Das klappt auch alles wunderbar. Der Prozess wird angelegt, gestartet und die Ausgabe kann ich mittels readAllStandardOutput() auslesen.
Allerdings machen Aufrufe wie z.B. "time" Probleme:
proc->start("cmd.exe", QStringList() << "/c" << "time");
Hier wartet die Konsole auf einen Tastendruck (ENTER), um die aktuelle Zeit auszugeben bzw. allgemein eine Ausgabe zu generieren und den Prozess korrekt zu beenden.
Jetzt ist die Frage: Wie teile ich dem Prozess bzw. dem CMD-Fenster den Tastendruck mit? Geht dies evtl. über das Kommando write()? Mittels read() erreiche ich jedenfalls die Ausgabe der Konsole (stdout)...
Vielen Herzlichen Dank im Voraus.