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

Вниз

Перехват вывода 16-битных ДОС-программ текстового режима   Найти похожие ветки 

 
Джо ©   (2005-07-25 04:23) [0]

Сабжевая программа (С++), вероятнее всего, для вывода текста использует printf. Напрямую в видео-память не выводит. Каким образом можно получить ее вывод, не прибегая к перенаправлению вывода в файл (>)? Разумеется, я имею в виду, что программа запускается из Windows-приложения вызовом CreateProcess. Моих знаний WinAPI хватило лишь на то, чтобы заключить, что сделать это невозможно.


 
Defunct ©   (2005-07-25 07:02) [1]

а почему
> не прибегая к перенаправлению вывода в файл (>)?

">>" не работает или принципиально нельзя использовать?

> Джо
> Сабжевая программа (С++), вероятнее всего, для вывода текста использует printf. Напрямую в видео-память не выводит. Каким образом можно получить ее вывод

Я бы поступил так: написал бы 16-ти разрядный загрузчик этой программы, к функции консольного вывода (ah=9, int 21h) либо к файлу с handle 0 (взависимости от того как реализован вывод в вышеупомянутой программе). Сей загрузчик запускал бы из win32 приложения. Непонятно только одно, для чего это нужно. ;>


 
Defunct ©   (2005-07-25 07:04) [2]

ой, потерял слова при редактирвании..
> этой программы, к функции
читать:

для перехвата функции


 
Lamer@fools.ua ©   (2005-07-25 07:56) [3]

Гугл, как ни странно, до сих пор на первом месте среди рулезов:
http://www.delphirus.com.ru/modules.php?name=Pages&pa=showpage&pid=888

:o)

P.S. Правильность примера не проверял, но для понимания идеи, думаю, хватит.


 
Defunct ©   (2005-07-25 10:15) [4]

> Lamer@fools.ua

16-ти разрядные приложения необязательно консольные, но они определенно не win32 и не являются процессами для системы (это процессы виртуальной машины ntvdm), поэтому вся кухня, работающая с processid работать вероятно не будет.


 
Джо ©   (2005-07-26 01:11) [5]

> Defunct
Да вот вокруг такого, довольно неуклюжего, способа и мои сображения крутились...

> Lamer@fools.ua.
Почему-то с самого начала был уверен, что для 16-разрядных ДОСовских приложений такое не сработает. Как назло, навалилось столько работы, что некогда голову поднять :( Но обязательно проверю. Впрочем, пример там, навскидку, кажется, некорректный - очепятки... но неважно, способ-то стандартный.



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

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

Наверх




Память: 0.48 MB
Время: 0.057 c
1-1122402394
iskatel
2005-07-26 22:26
2005.08.14
как сжать поток


14-1121749700
NeyroSpace
2005-07-19 09:08
2005.08.14
А если нефть и газ будут никому не нужны?


4-1118846713
Jedi
2005-06-15 18:45
2005.08.14
Инициация сообщения WM_NCPAINT


3-1120466651
Alex17
2005-07-04 12:44
2005.08.14
Определить первыи знак


14-1121835426
vajo
2005-07-20 08:57
2005.08.14
Помогите выбрать ноутбук