Programm starten/beenden und dessen Ausgabe auslesen

TimSz

Mitglied
Hi!

Ich möchte mir sozusagen eine eigene Konsole programmieren. Dazu möchte ich ein Programm starten (und möglicherweise auch nach ca. 2 Sekunden beenden) und das, was dieses Programm ausgibt, in eine Variable schreiben.

Ich habe hier im Forum schon viele Möglichkeiten gefunden, wie ich Programme starten kann, jedoch noch nichts, wie ich dessen Ausgabe auslesen kann. (zB. von "ping" oder "tracert")

Gruß

Tim

P.S.: Ich benutze Visual C++ 6.0 und mein Projekt ist eine Win32-Konsolenanwendung.
 
Danke für den Tipp, jedoch hätte ich gerne die Pipes in beide Richtungen offen. Ich habe in der MSDN einen Tipp gefunden (http://msdn.microsoft.com/library/d..._process_with_redirected_input_and_output.asp), doch damit scheint das Zurückschreiben (WriteToPipe();) auch noch nicht zu funktionieren.
Wenn ich zB die Funktion "debug" aufrufe, möchte ich sie danach auch noch bedienen können, was in der Konsole normalerweise 'über die Tastatur' geschieht.

Wie gesagt, bisher klappt das Auslesen der Ausgabe bereits, und diese möchte ich nun, aufgeteilt in 500 Byte-Häppchen per TCP weiterverschicken. Die TCP-Verbindung steht, und mittels meiner Routine:
Code:
static void sendmsg(char *txt, SOCKET xy)
funktioniert das auch. Jedoch muss die Variable txt kleiner als 512 Bytes sein. Wenn die Ausgabe größer ist als 512 Bytes (und das passiert sogar schon bei "ping /?"), muss sie also aufgeteilt werden. Hierdran scheitere ich im Moment auch noch, da mir die Variablentypen CString u.ä. noch nicht sehr geläufig sind :(

Gruß

TimSz
 
Zurück