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

时间:2010-08-21 04:49:53

标签: c# desktop-application fullscreen

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

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

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

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

1 个答案:

答案 0 :(得分:4)

对于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的正确路径上。

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