Главная страница
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.035 c
1-1122545943
Pasha L
2005-07-28 14:19
2005.08.14
как сделать, чтобы приложение не светилось на таскбаре?


4-1118907013
Unknown user
2005-06-16 11:30
2005.08.14
функция SetDIBitsToDevice


14-1122284005
MegaVolt
2005-07-25 13:33
2005.08.14
Что именно я в правилах нарушил?


3-1120963400
Rasa
2005-07-10 06:43
2005.08.14
Подстановка ключевого поля


4-1118656245
gdaujk
2005-06-13 13:50
2005.08.14
Окно на передний план !