000
01.12.2004, 13:29 Uhr
~PipeVersuch
Gast
|
einen wunderschönen guten Tag, habe gestern Abend, hier in der Suche etwas zu Pipes gefunden, was auch wunderbar funktioniert:
C++: |
#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 3
Fortsetzung 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 so 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 |