Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Скриншот экрана под окном


Автор: kazerxxx 30.7.2012, 14:34
Здравствуйте! Мне нужно снять область экрана ПОД окном. Как это реализовать? 

Автор: bsa 30.7.2012, 14:48
ОС какая? Windows?

Автор: kazerxxx 30.7.2012, 15:43
Цитата(bsa @ 30.7.2012,  14:48)
ОС какая? Windows?


Да,конечно.

Автор: Amp 30.7.2012, 16:25
Скрыть/свернуть окно, сделать скриншот области под окном, восстановить его.

Автор: kazerxxx 30.7.2012, 16:34
Цитата(Amp @ 30.7.2012,  16:25)
Скрыть/свернуть окно, сделать скриншот области под окном, восстановить его.

Такой вариант не подходит, т.к. нужно очень часто получать изображение.

Автор: Amp 30.7.2012, 17:03
Оконные менеджеры сейчас композитные. То есть окна независимо друг от друга отрисовываются в буферы (в текстуры, если аппаратное ускорение) и затем производится композиция всего этого хозяйства - окна накладываются друг на друга, применяются эффекты, прозрачность, рисуются тени. Desktop Window Manager (DWM) позволяет получать доступ к миниатюрам окон, погляди reference по нему - может можно получить доступ к регионам на определенном этапе отрисовки. Но этот API появился только начиная с Vista.

Еще из теоретических вариантов - сделать целевое окно полностью прозрачным и опять же снимать скриншоты того региона.

Автор: GremlinProg 31.7.2012, 08:23
Цитата(kazerxxx @  30.7.2012,  16:34 Найти цитируемый пост)
Мне нужно снять область экрана ПОД окном. Как это реализовать? 

перебирать все окна верхнего уровня кроме заданного и посылать им WM_PRINT не пробовал?
соответственно, включая все сопутствующие дочерние окна

Автор: kazerxxx 31.7.2012, 13:50
Спасибо за ответы. Пошёл копаться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)