如何检查打开的窗口是否完全遮挡桌面?

时间:2011-08-22 23:57:34

标签: c# .net

我正在用C#.net编写一个程序,只有当桌面对用户不可见时才改变桌面背景,即当前打开的窗口以某种方式完全覆盖桌面。

理想情况下,只要检测到桌面可见性发生变化,解决方案就会触发事件,但是现在我甚至不确定如何首先检查可见性,而不是扫描每个像素(非常低效)或定期循环通过所有打开的窗口并检查它们的尺寸(仍然效率低下,我不知道如何实现。)

我一直在使用Windows.Forms.Screen和列出here的user32.dll方法,但还没有设法找出任何有效的方法。

非常感谢任何有帮助的人!

1 个答案:

答案 0 :(得分:2)

您可以检测另一个Windows应用程序何时以全屏模式运行,这比检测到的更简单,并且比桌面拼凑的桌面更有可能。

此处的示例代码:http://www.richard-banks.org/2007/09/how-to-detect-if-another-application-is.html