QProcess | Tastendruck im gestarteten Process bewirken
QProcess | Tastendruck im gestarteten Process bewirken
Hallo zusammen!
Bin von Qt 4 eigentlich sehr begeistert. Habe eine Frage die mit QProcess zusammenhängt.
Ich starte die Application
QProcess myproc;
myproc.start(.....)
So mein Problem ist nun dass ich so ca 5 sekunden nach dem starten warten muss und dann eine Taste ('Y') drücken muss. Wie kann ich dass am besten erreichen. Unter linux würde ich einfach stdin duplizieren. Wie geht man das in Windows an.
Wie gesagt es geht nur um das senden eines Tastaturcodes/Tastendrücks auf das gestartete Programm.
VIELEN Dank im Voraus
T.Rain
Bin von Qt 4 eigentlich sehr begeistert. Habe eine Frage die mit QProcess zusammenhängt.
Ich starte die Application
QProcess myproc;
myproc.start(.....)
So mein Problem ist nun dass ich so ca 5 sekunden nach dem starten warten muss und dann eine Taste ('Y') drücken muss. Wie kann ich dass am besten erreichen. Unter linux würde ich einfach stdin duplizieren. Wie geht man das in Windows an.
Wie gesagt es geht nur um das senden eines Tastaturcodes/Tastendrücks auf das gestartete Programm.
VIELEN Dank im Voraus
T.Rain
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Da QProcess von QIODevice abgeleitet ist, sollte ein write() funktionieren. Siehe auch http://doc.trolltech.com/4.2/qprocess.h ... iteChannel
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
so hier der Code so wie ich das momentan versuche:
bin für jede hilfe dankbar
Code: Alles auswählen
QProcess unlock;
QByteArray bArray;
bArray.resize(2);
bArray[0] = 'Y';
bArray[2] = '\n';
unlock.setReadChannelMode(QProcess::ForwardedChannels);
unlock.start("C:\\TEST.exe", QStringList()<<"");
Sleep(1500);
std::cout<<"Writing command to application"<<std::endl;
unlock.write(bArray);
Sleep(1500);
unlock.write(bArray);
if(!unlock.waitForFinished())
std::cout<< "ERROR: "<<unlock.errorString().toLatin1().constData();
else
std::cout<<" Process ended"<<std::endl;-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: