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

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

Print Screen видео [D7, WinXP]


Страницы:   1 2

Eraser ©   (2005-04-11 21:26:00) 

Добрый вечер! Вопрос такой: как сделать Print Screen окна, в котором отображается видео?
Копирование с HDC окна даёт чёрный прямоугольник...

Спасибо.


Eraser   (2005-04-12 21:24:00) [21]

Спасибо всем... я так понял вопрос нетривиальный...

@!!ex

Твой брат писал драйвер ядра?


Sapersky   (2005-04-12 18:30:00) [22]

Если нужен только 1 кадр (скриншот), вот ещё вариант - включить в своей программе эксклюзивный видеорежим DirectX (полноэкранный, скажем так). Видеопамять при этом отбирается у остальных приложений, но, вроде, не очищается. Можно предположить, что медиаплеер создаёт первичку и оверлей, и сделать в своей программе то же самое. Если поверхности попадут в те же адреса видеопамяти, получим в оверлее нужный кадр.
То есть, теоретически должны получить...


Анонимщик1   (2005-04-12 17:14:00) [23]

Для XP есть более прямой способ - можно, вроде бы, прямо у миксера и спросить. Для NT/2000 такой метод не работает. Больше, к сожалению, сказать ничего не могу. Сам узнать был бы не прочь.


@!!ex   (2005-04-12 14:32:00) [24]

Хм. Я сам таким вопросом не задавался, но знаю, что мой брат с этим заморачиваться не стал. Написал драйвер, который получает прямой доступ к видео памяти и все......


Sapersky   (2005-04-12 12:34:00) [25]

Не то?

Если получить surface оверлея в адресном пространстве медиаплеера (c помощью madCollection/madCodeHook, например) - тогда, возможно, то. С тем отличием, что нужно не писать, а получать из оверлея данные (делается той же блокировкой), ну и преобразование обратное YUV -> RGB.
"Возможно", потому что данный метод сильно привязан к версии DX. В статье используется DX7 (DirectDraw). В DX >= 8, по некоторым данным, DirectDraw неявно используется DirectShow для вывода изображения - если это так, данный метод будет работать для всех ДиректИксов. Если нет - придётся ковыряться в DirectShow.


DeadMeat   (2005-04-12 01:09:00) [26]

Тут статься про DirectX была...
Не то?
Просто я не читал.. Знаю что была..

---
...Death Is Only The Begining...


Eraser   (2005-04-11 21:32:00) [27]

Анонимщик1

Именно в случае оверлея.


Анонимщик1   (2005-04-11 21:31:00) [28]

Это, наверное, в случае оверлея? Не знаю способа.


Страницы:   1 2

Наверх

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