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

Вниз

Перехват вывода 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
4-1118573861
Juk
2005-06-12 14:57
2005.08.14
Обработка WM_NCACTIVATE.


14-1121935462
Praco
2005-07-21 12:44
2005.08.14
Рыбалка в Московской области.


4-1118575139
Naphy
2005-06-12 15:18
2005.08.14
Параметр функции GetEnvironmentVariable...


14-1122269006
Ученик
2005-07-25 09:23
2005.08.14
Установка обновлений для Delphi 2005 Arhitect


6-1115137198
Turbid
2005-05-03 20:19
2005.08.14
Delphi - head запрос через NMHTML





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