Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 30.01.2014, 23:34   #1
Hamaus
ПроЭктировщик
 
Аватар для Hamaus
 
Регистрация: 12.09.2005
Сообщений: 138
Написано 20 полезных сообщений
(для 31 пользователей)
Плохо хитрый скрин

Всем привет!
Как сделать захват экрана и вывод одновременно?
Т.е. на компе запускается прога. Необходимо сделать скрин, обработать полученное изображение и вывести на экран. Все это в риалтайме. Сложность в том, что прога хз как выводит изображение (GDI, OpenGL,DirectX...). К тому же само окно должно быть скрыто (выводится обработанное изображение).
На ум пришли следуюшие варианты решений:
  • PrintWindow не подходит, т.к. ловит только графику, обрабатываемую в винде.
  • BitBlt с контекста экрана делает снимок всего что выводится.
  • За областью рабочего стола приложение не отрисовать, т.к. попадает в отсечение.
  • Виртуальный рабочий стол тоже не подошел, т.к. отрисовка происходит только активного рабочего стола.
Подкиньте какие-нибудь идеи. Заранее спасибо )
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (30.01.2014)
Старый 31.01.2014, 04:16   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: хитрый скрин

По сути ты хочешь влезть между монитором, и видео адаптером.
Самая большая проблема будет заключаться в том что это во первых не просто, во вторых задержка при захвате, обработки и выводе обратно изображения, будет ощутима, тем более если это привычный пользователю компьютер.

Ещё один вариант, это захват изображения подобными техниками как Fraps использует, и вывод в полно экранное приложение, которое будет принимать события клавиатуры и мышки, и пропускать далее - но тут снова не всё просто.

По сути тебе прийдёться прибегать к хакам и хитростям, и делом ты задался не простым.

Зачем если не секрет?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hamaus (31.01.2014)
Старый 31.01.2014, 04:31   #3
jimon
 
Сообщений: n/a
Ответ: хитрый скрин

если есть Aero то должно быть не сложно, там у каждого окна своя текстура в гпу по-сути
http://social.msdn.microsoft.com/For...rum=windowssdk

и потом каким-то чудом с помощью DWM http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx перехватить эту текстуру или по крайней мере отрендерить ее к себе
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hamaus (31.01.2014)
Старый 05.02.2014, 17:10   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: хитрый скрин

Можно узнать какие приложения вызывает WinAPI? Qip Shot делает скриншот, а потом дает выделить нужную часть (т.е. покзывает весь экран сфотканый). Правда экран моргает при этом.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 04:27.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com