【问题标题】:Detect if user has any application running in fullscreen [duplicate]检测用户是否有任何应用程序全屏运行[重复]
【发布时间】:2011-04-01 23:18:30
【问题描述】:

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

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

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

最初GetForegroundWindow()GetWindowRect() 出现在我的脑海中,但即便如此,如果我不在全屏模式下,我可以让一个窗口比我的屏幕更大,这对我没有帮助,所以我想知道是否还有其他标志或如何解决这个问题?

【问题讨论】:

  • 虽然我不知道确切的答案,但您所描述的似乎是全屏独占模式。
  • 全屏独占模式肯定是用于此的术语吗?我不确定这个词是什么......

标签: c# desktop-application fullscreen


【解决方案1】:

对于 PowerPoint,请在此处查看此 MS 知识库文章: 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 走在正确的道路上。

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

【讨论】:

  • 谢谢,我会检查的,但我一直在寻找更普通的查找,实际上必须通过所有这些来检查它会有点痛苦。
猜你喜欢
  • 2015-11-21
  • 2015-01-30
  • 2011-10-31
  • 1970-01-01
  • 2021-09-23
  • 2012-09-22
  • 2011-11-05
  • 2010-11-16
  • 1970-01-01
相关资源
最近更新 更多