hanshandlampe Geschrieben 5. März 2006 Teilen Geschrieben 5. März 2006 Hallo, wie kann ich in (Boland) C++ die Ausgabe einer eigenständigen, externen Konsolen-Anwendung abfangen bzw. in eine Variable umleiten? So daß, ich die Ausgabe in einer anderen Anwendung, von der aus die Konsole auch aufgerufen wird, auswerten kann? Eine Möglichkeit wäre, daß ich die Ausgabe mit "console>>ausgabe.txt" in eine Textdatei umleite. Aber wie kann ich hier Argumente an die Anwendung übergeben? Geht es vielleicht auch eleganter? Gruß, Michael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 6. März 2006 Teilen Geschrieben 6. März 2006 Hmm du könntest dir mal SetStdHandle oder ReadConsole angucken... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hanshandlampe Geschrieben 6. März 2006 Autor Teilen Geschrieben 6. März 2006 Hört sich gut an! Ich schau mal.. Danke für den Tip! Michael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hanshandlampe Geschrieben 7. März 2006 Autor Teilen Geschrieben 7. März 2006 //--------------------------------------------------------------------------- AnsiString ExecuteExternalFile(AnsiString FEXEC) { AnsiString OUTP; char BUFFER[100],InAnsi[100]; unsigned long LPDWORD; SECURITY_ATTRIBUTES secattr; ZeroMemory(&secattr,sizeof(secattr)); secattr.nLength = sizeof(secattr); secattr.bInheritHandle = TRUE; HANDLE rPipe, wPipe; // Pipe für lesen und schreiben CreatePipe(&rPipe,&wPipe,&secattr,0); // Für CreateProcess STARTUPINFO sInfo; ZeroMemory(&sInfo,sizeof(sInfo)); PROCESS_INFORMATION pInfo; ZeroMemory(&pInfo,sizeof(pInfo)); sInfo.cb=sizeof(sInfo); sInfo.dwFlags=STARTF_USESTDHANDLES; sInfo.hStdInput=NULL; sInfo.hStdOutput=wPipe; sInfo.hStdError=wPipe; // Ausführen CreateProcess(0, FEXEC.c_str(), 0, 0, TRUE,NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW, 0, 0, &sInfo,&pInfo); CloseHandle(wPipe); // Rückgabe auslesen while(ReadFile(rPipe,BUFFER,100,&LPDWORD,0)) { BUFFER[LPDWORD]=NULL; OemToChar(BUFFER,InAnsi); OUTP+=InAnsi; } return OUTP.TrimRight(); // Löscht nachfolgende Leer- und Steuerzeichen } //--------------------------------------------------------------------------- <-- so siehts aus!! :marine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Narf! Geschrieben 4. Juli 2006 Teilen Geschrieben 4. Juli 2006 Habe es nachgebaut, aber die Console hat keine Ausgaben mehr. Ich möchte eigentlich die Ausgaben nur mitlesen, um auf evtl. Meldungen zu reagieren. Ansonsten soll die Ausgabe aber noch zu sehen sein. Wie kann ich das anstellen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.