Python检查应用程序是不是全屏

Posted

技术标签:

【中文标题】Python检查应用程序是不是全屏【英文标题】:Python check if application is in fullscreenPython检查应用程序是否全屏 【发布时间】:2014-10-07 17:15:38 【问题描述】:

我很快就开始学习 python。对于我的第一个项目,我想创建一个工具,在检查第三个程序是否全屏时,开始运行一些功能。 基本上,假设我们运行一个游戏,它进入全屏,然后我的程序应该检测到它。我如何让它做到这一点? (我在 Windows 平台上) 我已经看到一些关于使用 Windows api 或使用 .NET 框架安装扩展的提示,但我太缺乏经验,不知道如何继续。

【问题讨论】:

How to check if an other program is running in fullscreen mode, eg. a media player 的可能重复项 【参考方案1】:

感谢@ivan_pozdeev 的提示,这就是我解决问题的方法。 它检查主屏幕的屏幕分辨率并将其与前景窗口的窗口大小进行比较。 对于多显示器设置,存在以下问题:

应用程序可能不在前台 -> 那么您必须枚举所有窗口并检查每个窗口 全屏应用程序可能在任何屏幕上 -> MS docs 可能会有所帮助
from ctypes import windll
import win32gui
user32 = windll.user32
user32.SetProcessDPIAware() # optional, makes functions return real pixel numbers instead of scaled values

full_screen_rect = (0, 0, user32.GetSystemMetrics(0), user32.GetSystemMetrics(1))

def is_full_screen():
    try:
        hWnd = user32.GetForegroundWindow()
        rect = win32gui.GetWindowRect(hWnd)
        return rect == full_screen_rect
    except:
        return False

【讨论】:

【参考方案2】:

这与 Python 无关,它是纯 WinAPI。有关算法,请参阅How to check if an other program is running in fullscreen mode, eg. a media player。然后查看 pywin32 和可能的 ctypes 以获取适当的包装器。

【讨论】:

这可以由不了解 WinAPI 或 C/C# 的人使用 Python 和适当的库(如您指出的 pywin32)来实现,绝对与 Python 和 Python 有关项目 @SebastianRivas 如果不了解 WinAPI,您将无法使用 pywin32,您将不知道如何使用这些功能。 Pywin32 只提供最少的信息,并抽象出很少的细节。

以上是关于Python检查应用程序是不是全屏的主要内容,如果未能解决你的问题,请参考以下文章

C ++如何使用处理程序检测窗口状态是不是在全屏?

C#Winform程序判断是不是有全屏窗口程序正在运行

检查python脚本是不是正在运行

Python - Windows - 将程序保持在另一个全屏应用程序之上

Python等待并检查文件是不是完全由外部程序创建

检测浏览器是不是处于全屏模式