Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.05;
Скачать: CL | DM;

Вниз

перехват вывода в файл   Найти похожие ветки 

 
Joseph   (2002-06-27 09:52) [0]

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


 
Fellomena   (2002-06-27 12:17) [1]

переопределяй стандартный stdout и от этого рули...


 
Юрий Зотов ©   (2002-06-27 16:32) [2]

> программа выводит строки в файл
> переопределяй стандартный stdout

Fellomena, ай-яй-яй. Разве файл - это стандартный stdout? Ничего не даст такое переопределение.

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

Попробуйте FindFirst(Next..)ChangeNotification. Не обязательно, но может получиться - все зависит от того, КАК именно программа пишет. Самой записи избежать не удастся, но уведомление о ней Вы все же получите.

На самый худой конец остается самый тупой способ - периодически проверять длину файла и считывать с него добавившийся кусок. Но это - в последнюю очередь.


 
Fellomena   (2002-07-01 11:41) [3]

2 Юрий Зотов © (27.06.02 16:32):

...мда, мозги у меня на югах расплавились imho
Есественно, файл - это не stdout 8(

SORRY.
(вот из-за таких ламеров, как я, умные люди в заблуждение вводятся 8(

А что, если открыть своей программой этот файл с эксклюзивными провами и каким-нибудь образом перехватывать то, что в него пробует записать другая программа?
хм... но в таком случае в той программе будет возникать ошибка доступа к ресурсу... интерестно, а можно её перехватить как-нибудь... наверное нет, это тебе не WH_KEYBOARD, хотя что-нибудь попридумывать можно наверняка...




 
paul_shmakov ©   (2002-07-01 14:59) [4]

а программа точно досовская? может консольная win32?
была бы она консольной win32 можно применить перезват api.
(вот, кстaти, пример использования перехвата api в мирных целях, а то все говорят вирусы-трояны :)

перехватить CreateFile, WriteFile.


 
SV ©   (2002-07-05 02:34) [5]

Наглый вариант - править саму DOS- программу.


 
ggrisha ©   (2002-07-05 09:27) [6]

Если в консоле нужно перехватывать winapi, то в DOSе нужно перехватывать int 21h.


 
Shaman_Naydak ©   (2002-07-05 12:20) [7]

Если программа досовская и винды 95/98, то можно попробовать применить технику обычного доса - перехватить 21h соответствующие ф-ции и в путь..
НО.. может и не сработать, если винды не вернут управление досовскому обработчику 21h (этим сильно грешили 3.11 винды, но в 95 это дело поправили).. в любом случае есть какие-то настройки, позволяющие это сделать однозначно..
Подробно этот вопрос описывается в книге Эндрю Шульмана "Неофициальная Windows"95"



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

Текущий архив: 2002.09.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-14022
Mr.Kirya
2002-08-26 12:15
2002.09.05
TRichEdit


7-14293
Sin
2002-06-18 22:37
2002.09.05
Контроль доступа к дискам и реестру


1-14041
vinivor
2002-08-26 18:25
2002.09.05
Регулировка звука из программы - как это сделать?


4-14352
Goblinus
2002-07-03 17:08
2002.09.05
Помогите, <b>PLEASE</b>


1-14112
Бегинер
2002-08-23 18:54
2002.09.05
Свойства объектов