我想知道如何使用DWM在自己期望的位置渲染窗口的副本。 我发现的唯一可以告诉DWM在某个地方进行呈现的内容是缩略图API。 但是MSDN的DWM缩略图概述明确警告我不要这样做: DWM缩略图无法让开发人员创建像Windows Vista Flip3D(WINKEY-TAB)功能那样的应用程序。 缩略图直接以2-D形式呈现到目标窗口。 我被告知,缩略图API不能用于创建类似Flip3D的应用程序,但他们没有说用哪个API能够创建类似于Windows Vista Flip3D的应用程序。 那么,哪个API可以用来创建类似于Windows Vista Flip3D的应用程序?
另一个能力是Flip3D(Win+Tab)。合成器可以对窗口执行三维定位。同样,由于所有这些都是在硬件中完成的,因此非常快速。
我已经找到了API,告诉桌面窗口监视器在此处为我绘制应用程序的缩略图。
背景
在运行 Windows 桌面组合时,应用程序将其窗口客户区绘制到自己的私有缓冲区中。(这与之前的 Windows 版本不同,在那些版本中每个应用程序直接在屏幕上绘制)。然后,将此客户区图像放置在一个框架中(标题栏、最小化、最大化、恢复按钮等),然后绘制(即合成)到桌面上 - 与所有其他打开的窗口一起:
另一个能力是Flip3D(Win+Tab)。合成器可以对窗口执行三维定位。同样,由于所有这些都是在硬件中完成的,因此非常快速。
我已经找到了API,告诉桌面窗口监视器在此处为我绘制应用程序的缩略图。
//Register a thumbnail we want
DwmRegisterThumbnail({in}hwndDestination, {in}hwndSource, out thumbnail);
// Start displaying the thumbnail
DwmUpdateThumbnailProperties({in}thumbnail, {in}thumbproperties);
但我找不到API来告诉DWM为我绘制窗口的全尺寸版本。
已发货的许可产品应符合合规规则,并且应设计和制造成一种明显旨在有效阻止修改此类许可产品以打败HDCP规范和合规规则内容保护要求的方式。
许可产品应设计和制造成一种明显旨在有效阻止发现或揭示设备密钥或其他高度机密信息的方式。
许可产品应使用至少以下技术,以一种明显旨在有效阻止打败HDCP规范和合规规则内容保护要求的方式:
你必须责备索尼。
CGWindowListCreateImage
?我不明白它们有任何关联。也许他们只是不希望人们搞乱窗口系统。无论如何,总有办法。只需要进行一些DWM反向工程即可。 - Jake Petroules