In and Out einzeln abfragen und beantworten
-
einen wunderschönen guten Morgen, habe gestern Abend, hier in der Suche etwas zu Pipes gefunden, was auch wunderbar funktioniert:
#define BUFFSIZE 4096 char cPipeResult[BUFFSIZE]; memset(cPipeResult,0,BUFFSIZE); DWORD dwBytes =0; PROCESS_INFORMATION PROCCINFO; LPSECURITY_ATTRIBUTES lpPipeAttributes = NULL; HANDLE hReadPipe; HANDLE hWritePipe; SECURITY_ATTRIBUTES SecAttribs; SecAttribs.lpSecurityDescriptor = NULL; SecAttribs.bInheritHandle = TRUE; SecAttribs.nLength = sizeof(SecAttribs); if( ! CreatePipe( &hReadPipe, &hWritePipe, &SecAttribs, 0)) { AfxMessageBox("Konnte Pipe nicht erstellen"); } else // Ok Prozess vorbereiten { STARTUPINFO INFO; INFO.cb=sizeof(STARTUPINFO); INFO.lpReserved=NULL; INFO.lpDesktop= NULL; INFO.lpTitle=NULL; INFO.dwX=0; INFO.dwY=0; INFO.dwXSize=100; INFO.dwYSize=100; INFO.dwXCountChars=0; INFO.dwYCountChars=0; INFO.dwFillAttribute=NULL; INFO.dwFlags=STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW|STARTF_USEPOSITION; INFO.wShowWindow= SW_SHOWDEFAULT; INFO.cbReserved2=0; INFO.lpReserved2=NULL; INFO.hStdInput = GetStdHandle(STD_INPUT_HANDLE); INFO.hStdOutput= hWritePipe; INFO.hStdError= GetStdHandle(STD_ERROR_HANDLE); CreateProcess( m_PfadDerExe,NULL, NULL, NULL, TRUE, CREATE_DEFAULT_ERROR_MODE| NORMAL_PRIORITY_CLASS, NULL, NULL, &INFO, &PROCCINFO); WaitForSingleObject(PROCCINFO.hProcess, 5000); ReadFile(hReadPipe, cPipeResult, sizeof(cPipeResult), &dwBytes,NULL); AfxMessageBox(cPipeResult); }
er gibt mir auch in der Messagebox alle abfragen und eingaben aus, also wunderbar sozusagen, aber kann mir jemand sagen, wie ich das KonsolenProgramm Schritt für Schritt durchgehen kann???
Im Moment sieht es in der Messagebox so aus:
*
Faktor=0 //ZEILE 1
Zeitkonstante=0 //ZEILE 2
Anfangswert=0 //ZEILE 3Fortsetzung mit beliebiger -Taste //ZEILE 4
Fehlermeldung = 0 //ZEILE 5
Ausgabe der Ergebnisse //ZEILE 6
0.00000 0.00000 0.00000 0.00000 usw*
ich hätte jetzt allerdings gerne, daß mein Programm die Zeilen einzeln in der Messagebox ausgibt, und auch beantworten kann...
Denn überall, wo eine "0" steht, sollte der Anwender eigentlich eine Zahl eingeben können...für Tips wäre ich sehr dankbar
-
kann mir vielleicht auch jemand dazu was sagen... bekomme Fehlermeldung, dass:
CRedirect::CRedirect : Keine ueberladene Funktion akzeptiert 2 Parameterhabe diese Beispiele aus:
http://www.c-plusplus.net/forum/viewtopic.php?t=65551&postdays=0&postorder=asc&highlight=pipe&start=10CRedirect Redirect("C:\\Temp\\sample.bat", &m_EditOutput);
hier meckert er rum???
-
kann mir niemand mal auf die Sprünge helfen, ob der erste Thread von mir mit
#define BUFFSIZE 4096 char cPipeResult[BUFFSIZE]; memset(cPipeResult,0,BUFFSIZE); DWORD dwBytes =0; PROCESS_INFORMATION PROCCINFO; ...
so umgeschrieben werden kann, so dass man die In´s and Out´s einzeln beantworten kann???
Oder wie ich Thread2 zum Laufen bringen kann???
-
irgendwelche Äusserungen wären nicht schlecht
-
kann mir jemand vielleicht ein tut oder ne anleitung fü ne Pipe geben...???
möchte doch nur von einer Konsolenanwendung die couts abfangen und beantworten von meinem MFC-Programm...
-