Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 16:09   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Скрин на видео.

Аккуратно беру скриншот, стандартным способом:
Код:
 DC := GetDC(0);
 Bitblt(Bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0, 0, SRCCOPY);
 ReleaseDC(0, DC);
Потом фасую его и пр. и пр.

Но, разумеется, такой способ не берет воспроизведение видео. Вместо кадра заливает $100010. Поискал на форуме решение проблемы, но не нашел. Как взять снимок, чтобы запечатлеть кадр из видео?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.12.2009, 16:21   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

1. Смотря в какой версии Windows и с какими настройками "не берет" кадр.
2. Видео ? Вы или кто и куда его выводите ?

Как говорилось, попробуйте CreateDC("Display", NULL, NULL, NULL) вроде так, ну уточнить не проблема, должно помочь, так же посмотрите в настройки BitBlt там флаг можно подключить CAPTUREBLT для окон слоев.

Точно сказать не могу, но если не поможет дальше будем смотреть что можно сделать.

Edit:
Так... посидел думу подумал, есть другой путь, но потребует Ваших усилий.
1. Последние попытки BitBlt - вместо 0 где GetDC давать кушать GetDesktopWindow или же напоследок FindWindow(L"Progman", NULL);
2. Это пути через DirectShow или Windows Media API. То что я нашел здесь

p.s. а не подскажите или поделитесь куда заливает то $100010 ? Неплохая сумма :D

Последний раз редактировалось BOBAH13; 02.12.2009 в 16:36.
BOBAH13 вне форума Ответить с цитированием
Старый 02.12.2009, 16:26   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

и не возьмет, проблема давняя... как правило плеера используют оверлей (если нет, то возьмет), по-крайней мере directshow... то что сами плеера умеют сохранять картинку, это и так понятно- они ведь и строят граф и туда они вклинивают свой samplegrabber... т.е. задача сводиться к поиску оверлейной поверхности и уже ее граба

зы: Вован думаю больше по этому поводу расскажет... ооо, вже сказал

...вот интересный пример граба средствами GDI >>> . <<<, еще как вариант - DirectX.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 02.12.2009 в 16:38.
raxp вне форума Ответить с цитированием
Старый 22.08.2013, 08:50   #4
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

если плеер выводит видео, используя Video Mixing Renderer 9, то код из первого поста работает. Во всяком случае, с самопальными плеерами.
BLACK_RAIN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сплэш-скрин Johnson Общие вопросы Delphi 2 21.11.2009 12:03
Скрин с компонента Webbrowser prizrak1390 Общие вопросы Delphi 1 24.10.2008 11:25
Сделать скрин формы andreyjn Общие вопросы Delphi 46 10.04.2008 21:35
Принт скрин MAcK Win Api 1 31.08.2007 20:48
Лого скрин Elm0 Свободное общение 10 23.06.2007 13:08