Seite 1 von 1

QProcess mit 16-bit-programm?

Verfasst: 3. Mai 2007 16:17
von -=Freaky=-
hi,

ich muss mithilfe von QProcess (bzw. egal womit, ich versuche es aber damit) input/output von net.exe (benutzt z.B. für "net send [...]") schreiben/lesen. das ist aber leider ne 16-bit-anwendung, und damit kann QProcess, wie ja auch in der doku steht, eben nicht umgehen (bzw. es kann probleme damit geben - und die gibt es).
ich sehe also keinen output (ob der input ankommt, weiss ich nicht.

jetzt steht in der doku, dass microsoft dafür sog. "intermediate applications" empfiehlt. und in der qt3.1-doku sogar ein link zu nem msdn-knowledge-article, der aber leider schon nicht mehr existiert.
zu diesen intermediate applications hab ich noch keine hilfe finden können.

meine hoffnung war, dass mir hier vielleicht jemand weiterhelfen kann, vielleicht mit einem link/tipp/zauberwort (für google) ?

danke im voraus!

mfg,
julian

Verfasst: 4. Mai 2007 07:19
von macman
Was sollen wir dazu jetzt sagen, wir wissen ja nicht mal was das Problem ist.

Verfasst: 4. Mai 2007 14:55
von -=Freaky=-

Code: Alles auswählen

QProcess proc;
proc.start( "blah.exe" );
QByteArray output = proc.readAllStandardOutput()
ist blah.exe als win32 anwendung kompiliert, kein problem.
ist es allerdings eine 16-bit-app, so bekommt man keinen output zurück (variable output ist immer leer).

ich brauche aber den output von blah.exe, und es ist ein 16-bit-programm.
was kann ich tun? gibt es eine möglichkeit, das mit Qt(4.2.3) hinzubekommen?

... so besser ?

mfg,
julian

Verfasst: 4. Mai 2007 15:12
von macman
Hast Du fein gemacht :wink: Du hast den Aufruf deiner blah.exe getestet, davon gehe ich mal aus. Du hast auch geprüft das die blah.exe mit geänderten Umgebungen klar kommt, falls die blah.exe irgendwas lesen will, und Du hast wahrscheinlich auch die Ausgaben von stderr überwacht.

Schon geprüft ob die Signale kommen? Testen kann ich da nichts, da mir keine 16-Bit-App bekannt ist. Von Probleme habe ich in Doku zu 4.2.3 jedenfalls nichts gefunden.

Verfasst: 4. Mai 2007 15:31
von bst
Hi,

sowas scheint bei mir zu funktionieren.

cu, Bernd
--

Code: Alles auswählen

#include <QDebug>
#include <QProcess>

int main(void)
{
	QProcess qp;

	qp.start("c:\\windows\\system32\\cmd.exe", QStringList() << "/C" << "c:\\uti\\argecho.exe" << "1" << "2" << "3");
	qp.waitForFinished();
	qDebug() << "qp:" << qp.readAll();

   return 0;
}

Verfasst: 5. Mai 2007 22:09
von -=Freaky=-
ok vielen dank an alle, der fehler lag doch ganz woanders (bei mir :)), QProcess war nicht schuld.
falscher alarm ...

mfg,
julian