Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Вниз

Как поймать сообщения консоли?   Найти похожие ветки 

 
.::D.e.M.o.N.i.X::.   (2003-05-04 05:40) [0]

Как из своей программы поймать сообщения консольной программы?
Чтобы было понятно : Из своей программы запускаю другую программу с ключами и по ходу её работы вывожу все её сообщения.


 
MBo   (2003-05-04 08:23) [1]

CreateProcess
перенаправление hStdOutput в pipe
CreatePipe


 
ST   (2003-05-04 10:40) [2]

Если проще, то можно создать bat файл и вызывать его, а в нём написать что-то типа my_program.exe > my_program.log


 
Song   (2003-05-04 11:11) [3]

2MBo © (04.05.03 08:23)
Не все пайпятся :(


 
MBo   (2003-05-04 11:22) [4]

>Song
не всЕ дочерние или не всЁ из них?


 
Song   (2003-05-04 11:24) [5]

Вообще информация не передаётся в некоторых прогах.
ReadPipe() ничего не возвращает и висит.


 
MBo   (2003-05-04 11:29) [6]

А причины известны? Что, консольный вывод не в hStdOutPut идет?

DosCommand не пробовал на такие злобные программы натравить?


 
Song   (2003-05-04 11:33) [7]

Консольный вывод идёт во WritePipe...
Вообщем исходник в http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1023371413;start=14, сообщение #14
С этой прогой ping идёт. А вот недавно arj пробовал - не пашет.


 
Song   (2003-05-04 11:34) [8]

А что за DosCommand ?


 
MBo   (2003-05-04 11:46) [9]

master-brain.boom.ru

проверил - аналогично, вывод arj тоже не ловится ;(


 
Юрий Зотов   (2003-05-04 12:28) [10]

Можно предположить, что не перенаправляются DOS-программы, которые для вывода используют не нормальные функции BIOS/DOS, а прямую запись в видеопамять. Такие встречались нередко и родными средствами DOS они тоже не перенаправлялись (естественно, для этого же надо что-то перехватывать, а перехватывать получается нечего).

Каким образом такой "прямой" вывод обрабатывает пресловутая виртуальная машина - одному Майкрософту известно (вероятно, эмулирует видеопамять?), но не исключено, что он действительно идет мимо StdOutput. Тогда и получается, что формально все верно, ошибок в нашей программе нет, но в канал просто ничего не пишется и ReadPipe ждет вхолостую.


 
Набережных С.   (2003-05-04 15:39) [11]

У консоли может быть несколько экранных буферов, созданных с помощью CreateConsoleScreenBuffer, отображаемый на экране выбирается SetConsoleActiveScreenBuffer. Выводить приложение может в любой из них. Если этим воспользоваться, то в переданный пайп естественно ничего не попадет.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
6-46880
Alekseev
2003-03-18 01:37
2003.05.15
Drag&Drop в WebBrowser


1-46801
exo
2003-05-02 12:47
2003.05.15
как дописать в конец файла с помощью TFileStream


1-46798
Max1111
2003-05-02 12:34
2003.05.15
Работа с текстовыми файлами


1-46776
Димыч
2003-05-01 13:35
2003.05.15
Прочитать чужой Memo


3-46634
maksimenkon
2003-04-22 17:28
2003.05.15
Как сохранить иконку в базу???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский