窗口截图

时间:2009-11-26 12:48:19

标签: winapi screenshot aero aero-glass

我正在尝试截取所有打开的窗口,也是最小化的窗口。目前我正在使用此代码: http://www.developerfusion.com/code/4630/capture-a-screen-shot/

但它不适用于最小化的窗口以及存在Glass效果的区域,因为像探索器标题栏这样的Vista是黑色的。任何人都可以帮助我吗?

我的目标是创建类似于Flip 3D的东西;如果有人也知道如何创建实时预览,那就太好了。

2 个答案:

答案 0 :(得分:1)

对于玻璃效果区域:我认为它不起作用,因为这些区域可能是用一些奇怪的DirectX方法而不是普通的GDI绘制的。

对于最小化的窗口问题:如果窗口最小化,其DC不会被绘制(从概念上讲,它甚至没有理由存在);你应该尝试向这样的窗口发送一条WM_PRINT消息,要求他们在你提供的DC上画自己。这种方法的问题在于并非所有窗口都能正确处理WM_PRINT。

答案 1 :(得分:1)

我发现用于任务栏的API预览了a.s.o。:

DWM Thumbnail Overview

非常棒,甚至可以让你做现场预览!