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

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

Добраться до оверлея [D7, WinXP]


Newman ©   (2005-10-01 22:09:00) 

Задача такая, необходимо осуществить захват изображения, которое отображается через оверлей (видео например).
BitBlt возвращает места, где картинка рисуется через оверлей, чёрным цветом.

PS Ещё вопрос... тут его уже задавали, но ответа не было. Как можно "захватить" полупрозрачные окна, BitBlt тут тоже не работает.

Спасибо.


Newman   (2005-10-07 15:05:00) [1]


> Sapersky   (07.10.05 12:17) [2]

Спасибо, буду разбираться.


Sapersky   (2005-10-07 12:17:00) [2]

Тут предлагали вариант - запускать две копии оверлейного приложения. Первая будет работать через оверлей, вторая, т.к. оверлей всего один, через обычную поверхность, которая захватывается BitBlt. Или отключить использование оверлея в этом приложении.
Если "по-честному", без всяких доп. манипуляций - теоретически можно внедрением в АП целевого приложения и перехватом API для получения нужного интерфейса (IDirectDrawSurface или IOverlay) см., например, madCodeHook - http://www.madshi.net/. Но это ОЧЕНЬ муторно.
Относительно окон - в WinXP (возможно, в GDI+) есть функция, не помню точно названия, вроде PrintWindow, которая рисует любое окно в указанный буфер.


Newman   (2005-10-06 16:26:00) [3]

up
(может всё таки кто-то знает)


Наверх

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