Consolenstreams umleiten ?
-
Ist es möglich den Input und Output Stream einer Console umzuleiten ?
Ich würde gerne eine Konsole sozusagen kapseln und die Ausgabestream lesen, sowie auch etwas an der Input weitergeben, ohne dabei Tastatureigaben zu simulieren.Hintergrund:
Ich habe eine recht komplexe Anwendung (nicht von mir), welche ich ansprechen will und eine Hübsche Oberfläche drum rum machen.
-
Befehl einlesen...
CreatePipe()...
StartupInfo struktur definieren für Process...ZeroMemory(&sInfo,sizeof(sInfo)); ZeroMemory(&pInfo,sizeof(pInfo)); sInfo.cb = sizeof(sInfo); sInfo.dwFlags = STARTF_USESTDHANDLES; sInfo.hStdInput = NULL; sInfo.hStdOutput= wPipe; sInfo.hStdError = wPipe;CreateProcess()...
schreib pipe schliessen...
ReadFile()...
lese pipe schliessen...
-
Ja, es ist möglich.
Das sollte dir weiterhelfen:Threads and Pipes in console apps
-
Hier die Korrekte Lösug:
http://support.microsoft.com/kb/190351/en-usDas wichtige ist der Thread, da es sonst zu DeadLocks kommen kann...
-
Hervorragend, danke für die Antworten, ich werde das umgehend umsetzen.
Ich denke nicht, dass es zu weiteren Fragen oder Problemen kommt.
-
http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx
hat auch geholfen (MSDN)