首页 > 解决方案 > 捕获不可见(即锁定)的虚拟桌面

问题描述

对于测试自动化,我想捕获一个不可见的虚拟桌面。它甚至无法访问,因为显示的是安全桌面。

我知道可以连接到复合管理器(“dwm”)以捕获该桌面上的每个窗口。而且我知道可以将事件发送到该桌面上的窗口。(我知道,否则测试工具将无法工作)

在我开始重新实现复合管理器之前:是否可以从 dwm 获取 DesktopWindow,如果可以,即使显示安全桌面,我如何强制 dwm 完成其工作?

如果我不得不咬紧牙关并且需要自己进行合成,那么将所有窗口从底部排列到汤姆并将它们渲染为某个图像的最快方法是什么?

win10捕获api是否适用于隐形桌面?

标签: securityscreenshotdesktop

解决方案


回答最后一个问题:不,新的 win10 捕获 API 没有帮助。例如程序

https://github.com/robmikh/SimpleRecorder/tree/master/SimpleRecorder

无法捕获锁定的桌面,也无法捕获子窗口。

以上是详细版本:

GDI32Util.getScreenshot(句柄)

句柄是桌面窗口(锁定时不工作)或其他一些窗口句柄(锁定时工作,但错过子窗口)。

所以唯一的选择是从下到上按z顺序遍历所有窗口。


推荐阅读