3

我有一个使用 DXGI 桌面复制 API 捕获桌面屏幕的程序。

我得到了框架,IDXGIOutputDuplication::AcquireNextFrame并且能够很好地逐帧捕获我的桌面。

为了继续前进,我尝试优化我的程序并尝试管理移动的矩形。API 提供IDXGIOutputDuplication::GetFrameDirtyRectsIDXGIOutputDuplication::GetFrameMoveRects获取这些信息。

但是,似乎从来没有任何矩形被识别为被移动。文档说移动的矩形是:

桌面图像中的像素矩形,操作系统移动到同一图像中的另一个位置

这究竟是什么意思?DXGI 可以识别屏幕的任意部分已被移动吗?或者这可能只适用于被移动的桌面窗口?

4

2 回答 2

0

我只能想象它取决于图形驱动程序、监视器和诸如此类的东西,因此可能很难给出完整的源操作列表。

我玩了一个用于桌面复制 api 的示例应用程序,当我最大化资源管理器窗口时出现了一个移动的矩形事件(Windows 10 周年纪念日,Surface Pro 3,没有外部屏幕)

于 2016-10-18T05:38:26.673 回答
0

在我的测试中,所有更改的区域在 Windows 10 上都被识别为脏矩形。在 Windows Server 2012(如 Windows 8)上,可以正确识别移动的区域。

于 2020-05-18T05:53:58.533 回答