我一直在查看 msdn 上的DXGI 桌面复制示例,它看起来非常好,但不清楚它是否适用于我想做的事情。
我想做的是使用Win32 Desktop api创建一个新桌面(CreateDesktop
)然后切换到该桌面(SwitchDesktop
),然后在那个新桌面中我想创建一个窗口并呈现原始桌面的实时预览。
尽管 DXGI api 的名称似乎与 Win32 意义上的“屏幕”而不是桌面更相关。在我投入大量时间尝试实现这一点之前,却发现它不起作用,我希望对这些 api 更了解的人能够加入并引导我朝着正确的方向前进。
以前尝试使用其他常见的屏幕捕获方法执行此操作已导致失败,因为图像始终是黑色的。我希望 DXGI 将允许我将非活动桌面渲染为 DirectX 纹理,然后我可以在我的应用程序中显示该纹理。