![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Print Screen видео [D7, WinXP]
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]Это, наверное, в случае оверлея? Не знаю способа.