2010-08-21 161 views
10

我在C#中创建了一个通知程序,位于任务栏上,当我从中获取某些内容时会显示一个气球,类似于Google Talk,当您收到新电子邮件时,忽略我是否在全屏运行应用程序,只是做这件事。检测用户是否有全屏运行的应用程序

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

例如,当您运行游戏时,大部分游戏都将以全屏模式运行。

最初GetForegroundWindow()GetWindowRect()来到我的脑海,但即使这样我就可以使一个窗口去更大然后我的屏幕上,如果我不是全屏这不会帮助我,所以我想知道是否有其他标志或方式来处理这个?

+0

虽然我不知道确切的答案,但您所描述的内容看起来像全屏专有模式。 – 2010-08-21 05:19:05

+0

是Fullscreen Exclusive Mode这个术语用于确定吗?我不确定这个词会是什么...... – Prix 2010-08-21 08:36:02

回答

4

对于PowerPoint,看到这个MS KB文章在这里: http://support.microsoft.com/kb/913045

屏幕保护程序:Windows API的:FindWindow函数( “WindowsScreenSaverClass”)。 (更多详情请参阅本网站文章:http://bobmoore.mvps.org/Win32/w32tip22.htm - 它有一个更detailsd方式做到这一点,但我认为FindWindow函数将工作对你合适)

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

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

事情变得复杂,你有多个显示器 - 所以不要忘记,因为它涉及到你的应用程序的情况。

+1

谢谢,我会检查,但我正在寻找一个更加通用的查找,不得不通过所有这些来检查它会有点痛苦。 – Prix 2010-08-21 08:36:41

相关问题