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