我正在用C#.net编写一个程序,只有当桌面对用户不可见时才改变桌面背景,即当前打开的窗口以某种方式完全覆盖桌面。
理想情况下,只要检测到桌面可见性发生变化,解决方案就会触发事件,但是现在我甚至不确定如何首先检查可见性,而不是扫描每个像素(非常低效)或定期循环通过所有打开的窗口并检查它们的尺寸(仍然效率低下,我不知道如何实现。)
我一直在使用Windows.Forms.Screen和列出here的user32.dll方法,但还没有设法找出任何有效的方法。
非常感谢任何有帮助的人!
答案 0 :(得分:2)
您可以检测另一个Windows应用程序何时以全屏模式运行,这比检测到的更简单,并且比桌面拼凑的桌面更有可能。
此处的示例代码:http://www.richard-banks.org/2007/09/how-to-detect-if-another-application-is.html