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

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-14084
()utLaw
2002-08-23 11:12
2002.09.05
Как прочитать картинки JPG и TIFF (нужен компонент)


3-13965
Selax
2002-08-15 07:26
2002.09.05
CachedUpdate на модифицированную запись


3-13916
Виталий Панасенко
2002-08-15 09:51
2002.09.05
Заставить Жар-Птицу ругаться по-русски


7-14302
saf
2002-06-25 19:21
2002.09.05
Копирование проги


3-13918
bobr12
2002-08-14 16:44
2002.09.05
Проблема при одновременном обращении программ к InterBase





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский