Скриншот окна - PullRequest
       32

Скриншот окна

0 голосов
/ 26 ноября 2009

Я пытаюсь сделать скриншоты всех открытых окон, в том числе свернутых. В настоящее время я использую этот код: http://www.developerfusion.com/code/4630/capture-a-screen-shot/

Но это не работает для свернутых окон и областей, где присутствует эффект «Стекло», поскольку Vista, такая как строка заголовка проводника, черная Кто-нибудь может мне помочь?

Моя цель - создать нечто похожее на Flip 3D; было бы здорово, если бы кто-то также знал о том, как создать живой предварительный просмотр.

Ответы [ 2 ]

1 голос
/ 18 января 2011

Я нашел API, который используется для предварительного просмотра панели задач a.s.o.:

Обзор миниатюр DWM

Довольно круто, он даже позволяет делать живые превью!

1 голос
/ 26 ноября 2009

Для областей со стеклянным эффектом: я думаю, что это не работает, потому что эти области могут быть нарисованы каким-то странным методом DirectX вместо обычного GDI.

Для проблемы свернутых окон: если окно свернуто, его DC не окрашивается (концептуально, у него даже нет причин существовать); Вы должны попытаться отправить в такие окна сообщение WM_PRINT с просьбой нарисовать себя на DC, который вы им предоставите. Проблема этого подхода заключается в том, что не все окна правильно обрабатывают WM_PRINT.

...