如何在顶部但不在全屏应用程序的顶部

时间:2012-02-03 20:27:35

标签: c# winforms popup fullscreen

所以我试着寻找一天中最好的部分来回答一个简单的问题。我希望我的C#应用​​程序在计时器上弹出另一个winform,然后在延迟后关闭它。简单,完成和完成。现在我的问题是我希望它实际上是在其他应用程序之上,除非它们是全屏的。我的意思是一个真正的全屏应用程序,如游戏。我不想干涉这样的应用程序,因为它应该优先于我的应用程序。

问题是我在弹出窗体上使用'OnTop'属性,虽然它适用于任何其他应用程序,我在播放全屏游戏和表单时测试它,当它显示() “s,采用全屏应用程序并将其放入窗口模式。

这是全屏应用程序'OnTop'属性的预期效果吗?如果有的话,我可以在普通的窗口窗口上弹出我的表单弹出窗口而不会干扰全屏应用程序吗?

任何链接,例如,大方向的踢都很棒。我在搜索涉及全屏的winforms时遇到的唯一点击是人们试图将他们的应用程序全屏显示或让他们的应用程序将焦点从另一个应用程序中移开。

先谢谢。

(我没有发布任何代码,因为它只是一个简单的winform,在具有“onTop”属性集的计时器上是“formX:Show()”)


(编辑)因此,感谢awilson53让我走上了正确的轨道,我能够找到一种方法(虽然有些挑剔),以确定应用程序是否全屏。看起来有点简单,而且“好吧”,答案毕竟已经说完了。

95%的功劳归于文章作者:http://www.richard-banks.org/2007/09/how-to-detect-if-another-application-is.html

~5%的人去了awilson53让我走上正轨。 :)

1 个答案:

答案 0 :(得分:4)

查看EnumWindows函数的this包装器。这将允许您枚举所有打开的窗口并确定其窗口状态。您需要检查EnumWindowItem.Maximized属性,如果为true,则将OnTop属性设置为false。如果EnumWindowItem没有返回Maximized,则可以将OnTop设置为true。