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检查应用程序是不是全屏的主要内容,如果未能解决你的问题,请参考以下文章