Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

снимок экрана полноэкранного


Yrtimd ©   (2003-02-05 07:33:00) 

Итак, какой уже раз обращаюсь с этим вопросом:
Как получить снимок экрана, скажем, при работе консольного приложения в полноэкранном текстовом режиме.
Т.е. снять рабочий стол - элементарно, а вот как можно определить, что в данный момент видеоадаптер "находится в текстовом режиме" и снять данные о текущей картинке...
Желательно - без использования сторонних компонент.
Заранее благодарен. ;)


Юрий Зотов   (2003-02-05 07:58:00) [1]

В DOS это выглядело так:

Адрес видеобуфера в текстовом режиме - $B800.
2 байта на символ.
80х25 символов на экране (чаще всего).

То есть, надо взять 4000 байт по адресу $B800.

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

Но если Вы хотите снять копию экрана ЧУЖОЙпрограммы, то, видимо, придется внедряться в ее виртуальную DOS-машину. Думаю, проще всего это будет сделать, написав DOS-овскую TSR (Int9) и запуская ее в одном батнике с программой (перед ней).


Наверх

Титульная страница Поиск, карта сайта Написать письмо