forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   хитрый скрин (http://forum.boolean.name/showthread.php?t=18898)

Hamaus 30.01.2014 23:34

хитрый скрин
 
Всем привет!
Как сделать захват экрана и вывод одновременно?
Т.е. на компе запускается прога. Необходимо сделать скрин, обработать полученное изображение и вывести на экран. Все это в риалтайме. Сложность в том, что прога хз как выводит изображение (GDI, OpenGL,DirectX...). К тому же само окно должно быть скрыто (выводится обработанное изображение).
На ум пришли следуюшие варианты решений:
  • PrintWindow не подходит, т.к. ловит только графику, обрабатываемую в винде.
  • BitBlt с контекста экрана делает снимок всего что выводится.
  • За областью рабочего стола приложение не отрисовать, т.к. попадает в отсечение.
  • Виртуальный рабочий стол тоже не подошел, т.к. отрисовка происходит только активного рабочего стола.
Подкиньте какие-нибудь идеи. Заранее спасибо )

moka 31.01.2014 04:16

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

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

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

Зачем если не секрет?

jimon 31.01.2014 04:31

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

и потом каким-то чудом с помощью DWM http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx перехватить эту текстуру или по крайней мере отрендерить ее к себе

pax 05.02.2014 17:10

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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot