Seite 1 von 1

[gelöst] QProcess - Konsolenprogramm Kennwort eingeben

Verfasst: 15. Oktober 2009 11:18
von Oliver Hom
Hallo,

ich rufe mit QProcess ein Konsolenprogramm auf, das nach dem Starten eine Kennwort eingabe erwartet.

Wenn ich nun mit write () die Daten schreibe und danach mit closeWriteChannel () den Channel schließe, meldet das Programm, daß es kein Kennwort vom stdin lesen konnte.

Habt ihr da eine Idee?

Einen Vorschlag habe ich hier noch gefunden.
http://labs.trolltech.com/blogs/2006/03 ... -qprocess/

Allerdings, sind dort noch einige Probleme mit der Umsetzung...

Eine Anwendung, die die Kennworteingabe erwartet zum testen wäre z.B. openvpn.exe

Gruß,
Oliver

Verfasst: 15. Oktober 2009 11:24
von arj
Hast Du eventuell kein \n am Ende mitgeschickt?
Die Daten sollten eigentlich automatisch geflusht werden, wenn Du den Channel zu machs. Daran sollte es eigentlich nicht liegen.

Verfasst: 15. Oktober 2009 11:36
von Oliver Hom
Mit \n habe ich probiert. Hatte keine Auswirkung.

Gruß,
Oliver

Verfasst: 15. Oktober 2009 12:34
von arj
Schreibst Du eventuell das Passwort zu früh? Also bevor das Programm von stdin liest?
Was sagt http://doc.trolltech.com/4.5/qprocess.html#error ?

Verfasst: 15. Oktober 2009 16:31
von Oliver Hom
Hallo,

ja genau das war es. Die Kennwortabfrage kam auf stderr.
Ich hatte den zwar auch ausgelesen aber leider im falschen Signal :oops:

Dadurch kamen die Eingaben zur falschen Zeit. Nun das Signal gebunden und ich kann wieder alles auswerten. :D

Danke & Gruß,
Oliver