在Windows 7中,我们有类似玻璃的窗口,其中部分窗口或桌面通过:
Windows必须知道哪些区域是半透明的才能正确渲染窗口。
许多testing自动化工具能够使用位图来比较预期的结果,而半透明的窗口部分可能会导致问题。
我想知道是否有可能通过编程方式 (例如通过API调用) 来检测窗口的半透明区域,以实现对玻璃窗口强健的屏幕比较工具。
通常的解决方法是禁用Aero,但即使如此,窗口的颜色也可能取决于其他需要考虑的系统设置。 检测透明区域可能比检测控制面板外观颜色更可靠。
另外,由于我们有半自动化的testing,因此我只会在短时间内closuresAero,然后在testing的自动化部分完成时再打开它。 这会导致不必要的闪烁。
请注意,我不想检测已捕获图像中的透明区域,如在图像中检测透明玻璃中所述 。 我希望在操作系统仍然可以区分透明度的时候这样做。