Python检查应用程序是否全屏显示

时间:2014-10-07 17:15:38

标签: python

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

2 个答案:

答案 0 :(得分:1)

这与Python没有任何关系,那就是纯粹的WinAPI。有关算法,请参阅How to check if an other program is running in fullscreen mode, eg. a media player。然后查看pywin32和可能ctypes以获取相应的包装器。

答案 1 :(得分: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