gpt4 book ai didi

c# - 如何检查应用程序是否在任何屏幕上运行全屏模式?

转载 作者:行者123 更新时间:2023-11-30 21:55:30 24 4
gpt4 key购买 nike

我想检查是否有任何屏幕以全屏模式托管应用程序。我只有一个屏幕的解决方案,它是从这里复制的代码:[WPF] [C#] How-to : Detect if another application is running in full screen mode.该解决方案基于

[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();

仅收集事件 窗口句柄。问题是,我有两个屏幕。我搜索了很多网站,但没有一个能回答我的问题。不是截屏,简单,不依赖P/Invoke。

这可能吗?

最佳答案

这里没有现成的解决方案,但让我们看看..

获取所有显示窗口的列表并检查这些窗口的位置和大小 - 可能,有很多工具可以做到这一点,关于它的文章很多,我将跳过这一篇。然后,您可以调用MonitorFromWindow对于每个或某些窗口,并将窗口尺寸和位置与监视器信息进行比较。如果 windowpos ~= 0,0 和 windowsize ~= monitorresolution 你可以假设这个窗口处于全屏模式。

另一方面,如果已经有了所有 HWND 的列表,那么为什么不只是 Query the window for its placement并检查 WINDOWPLACEMENT.showCmd 是否有 SW_MAXIMIZE/SW_SHOWMAXIMIZED 标志。这不会告诉您它是哪个显示器,但至少应该告诉您窗口是否已最大化以及是否足够您使用..

我不知道那样做会多快/多慢,但是,是的,这似乎是可能的。

关于c# - 如何检查应用程序是否在任何屏幕上运行全屏模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com