You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下Python后台运行时无法对游戏窗口截图的问题求助

解决Windows后台运行时Python无法截图游戏窗口的问题

核心原因

Windows 11中,后台程序默认无法捕获前台独占窗口(尤其是游戏常用的DirectX/OpenGL全屏模式)的画面,这是系统的会话隔离和权限限制导致的,与截图库本身无关。

可行解决方案

1. 以管理员权限运行脚本

右键点击终端、PyCharm等运行环境,选择「以管理员身份运行」,可解除多数后台截图的权限限制。

2. 改用PrintWindow API捕获目标窗口

之前的win32ui代码依赖桌面DC,后台时无法获取前台窗口内容,改用PrintWindow直接捕获目标窗口画面:

import win32gui
import win32ui
from PIL import Image
import time

def capture_game_window(window_title):
    hwnd_target = win32gui.FindWindow(None, window_title)
    if not hwnd_target:
        raise Exception(f"未找到窗口:{window_title}")
    
    left, top, right, bot = win32gui.GetWindowRect(hwnd_target)
    w, h = right - left, bot - top

    # 获取目标窗口的DC,而非桌面DC
    hwnd_dc = win32gui.GetWindowDC(hwnd_target)
    mfc_dc = win32ui.CreateDCFromHandle(hwnd_dc)
    save_dc = mfc_dc.CreateCompatibleDC()

    save_bitmap = win32ui.CreateBitmap()
    save_bitmap.CreateCompatibleBitmap(mfc_dc, w, h)
    save_dc.SelectObject(save_bitmap)

    # 关键:用PrintWindow捕获后台窗口画面
    win32gui.PrintWindow(hwnd_target, save_dc.GetSafeHdc(), 0)

    # 转换为PIL图像
    bmp_info = save_bitmap.GetInfo()
    bmp_str = save_bitmap.GetBitmapBits(True)
    img = Image.frombuffer(
        'RGB',
        (bmp_info['bmWidth'], bmp_info['bmHeight']),
        bmp_str, 'raw', 'BGRX', 0, 1)

    # 释放资源
    win32gui.DeleteObject(save_bitmap.GetHandle())
    save_dc.DeleteDC()
    mfc_dc.DeleteDC()
    win32gui.ReleaseDC(hwnd_target, hwnd_dc)
    
    return img

# 循环截图测试
while True:
    try:
        img = capture_game_window('Backpack Battles')
        img.save('screenshot.png')
    except Exception as e:
        print(e)
    time.sleep(1.0)

3. 关闭游戏的全屏独占模式

进入游戏设置,将「全屏」改为「窗口化全屏」或「窗口模式」,系统不会对这类窗口做严格隔离,后台程序更容易捕获画面。

4. 调整程序的高DPI缩放设置

右键点击Python.exe或脚本快捷方式 → 属性 → 兼容性 → 更改高DPI设置 → 勾选「替代高DPI缩放行为」,下拉选择「应用程序」,可解决因DPI缩放导致的截图失败问题。

补充说明

  • ImageGrab、mss默认捕获当前会话的前台画面,后台时系统会限制这类调用,优先使用针对单个窗口的PrintWindow方案。
  • 禁用终端快速编辑模式仅解决终端卡顿问题,与后台截图权限无关。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 16:04:49