检测用户是否有全屏运行的应用程序

我在C#中做了一个通知程序应用程序,它位于任务栏上,当我从中获取内容时会显示一个气球,类似于Google Talk,当您收到新的电子邮件时,但是如果我在全屏运行应用程序,它会忽略它做到这一点就是工作。

如何检测并确保应用程序处于全屏模式? 我并不是说最大化(因为应用程序可以在屏幕上最大化但仍然不在全屏模式下),但真正的全屏模式。

例如,当您运行游戏时,大多数将以全屏模式运行。

最初GetForegroundWindow()GetWindowRect()来到我的脑海,但即便如此,如果我不在全屏上,我可以让一个窗口比我的屏幕大,这对我没有帮助,所以我想知道是否有其他标志或方法接近这个?

对于PowerPoint,请参阅此MS KB文章: http : //support.microsoft.com/kb/913045

屏幕保护程序:Windows API:FindWindow(“WindowsScreenSaverClass”)。 (有关详细信息,请参阅此网站文章: http ://bobmoore.mvps.org/Win32/w32tip22.htm – 它有更详细的方法,但我认为FindWindow可以正常工作)

用于检测是否正在使用全屏游戏:IDirect3DDevice9 :: TestCooperativeLevel http://msdn.microsoft.com/en-us/library/bb174472(VS.85).aspx

否则,我认为你在GetForegroundWindow,GetWindowRect和其他窗口定位api的正确路径上。

如果您有多个显示器,事情会变得复杂 – 所以不要忘记与您的应用相关的场景。