есть с++ прога которая исполняет консольное приложение с помощью system из stdlib.h
требуется перехватить вывод той проги что исполняется в текстовую строку (char *buffer[8000])
возможно?
C/C++ вопрос....
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Папа,есть с++ прога которая исполняет консольное приложение с помощью system из stdlib.h
требуется перехватить вывод той проги что исполняется в текстовую строку (char *buffer[8000])
возможно?
1) При чём здесь С/C++? А если бы исполнимый код был написан на Delphi? Если я правильно тебя понял, то есть *.exe
2) char *buffer[8000] - в такую "строку" не то что перехватить, а даже записать ничего не возможно



-
- Завсегдатай
- Сообщения: 278
- Зарегистрирован: 03 мар 2003, 08:55
- Откуда: RU->BC->ON->FI -> Chicago, IL -> Seattle, WA
Re: C/C++ вопрос....
Предполагаю нормальный консольный вывод. Можно и всерьёз, а можно и просто попытаться перенаправить консольный вывод в файл средствами OS.папа Карло писал(а):требуется перехватить вывод той проги что исполняется в текстовую строку
Код: Выделить всё
MisteryProgram.exe > output.txt
Получив файл можно творить всё что угодно... А ведь можно и вовсе без файла: stdout в stdin! Что-то вроде:
Код: Выделить всё
Something.exe | MisteryProgram.exe
Посмотрел, вроде как здесь сделано: http://dogma.net/markn/articles/bwt/ari.cpp
Вот так читает stdin:
Код: Выделить всё
for (;;) { /* Loop through characters. */
int ch;
ch = getc(stdin); /* Read the next character. */
if (ch==EOF) break; /* Exit loop on end-of-file.*/
// делай что нибудь с ch
}
Совсем без API.
Последний раз редактировалось Woozy 27 май 2004, 15:41, всего редактировалось 4 раза.
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
нашел плагин который делает все что мне надо
есть даже исходник.... смысл такой.... исполняется прога в окне, окно гасится АПИ винды.... вывод перенаправляется во временный файл.... из него происходит зачитывание в строку, но не более чем ты говоришь..... это все оформлено в виде плагина, что мне надо
так что все уже подключил 



- dima
- Житель
- Сообщения: 690
- Зарегистрирован: 19 фев 2003, 19:26
- Откуда: Хабаровск->Toronto
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
-
- Частый Гость
- Сообщения: 10
- Зарегистрирован: 28 май 2004, 15:42
[trn]dlja togo zhe razvitija posmotri[/trn] CreateProcess(), [trn]parameter[/trn] STARTUPINFO, [trn]polja[/trn] hStdXxxпапа Карло писал(а):ок. посмотрю для общего развития.dima писал(а):я такое делал. Вроде telnet сервера. Соединяешься с ним, он запускает cmd.exe а stderr и stdout отылаешь назад клиенту по TCP/IP. Почти весь код нашел на codeguru.
Год назадмерси.

- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
не программер я... не надо мне наверное так глубокоtemp-ii писал(а):[trn]dlja togo zhe razvitija posmotri[/trn] CreateProcess(), [trn]parameter[/trn] STARTUPINFO, [trn]polja[/trn] hStdXxxпапа Карло писал(а):ок. посмотрю для общего развития.dima писал(а):я такое делал. Вроде telnet сервера. Соединяешься с ним, он запускает cmd.exe а stderr и stdout отылаешь назад клиенту по TCP/IP. Почти весь код нашел на codeguru.
Год назадмерси.

- Lepsik
- Житель
- Сообщения: 522
- Зарегистрирован: 17 фев 2003, 18:34
- Откуда: Berlin
- Контактная информация: