无法捕获窗口标题python

Posted

技术标签:

【中文标题】无法捕获窗口标题python【英文标题】:unable to capture window title python 【发布时间】:2019-10-17 20:58:48 【问题描述】:

以下代码 sn-p 应查找窗口“Notes.txt - Notepad”并捕获该窗口的屏幕截图。

import pyautogui
import win32gui

def screenshot(window_title="Notes.txt - Notepad"):
    if window_title:
        hwnd = win32gui.FindWindow(window_title, None)
        if hwnd:
            win32gui.SetForegroundWindow(hwnd)
            x, y, x1, y1 = win32gui.GetClientRect(hwnd)
            x, y = win32gui.ClientToScreen(hwnd, (x, y))
            x1, y1 = win32gui.ClientToScreen(hwnd, (x1 - x, y1 - y))
            im = pyautogui.screenshot(region=(x, y, x1, y1))
            return im
        else:
            print('Window not found!')
    else:
        im = pyautogui.screenshot()
        return im


im = screenshot('Calculator')
if im:
    im.show()

这里的问题是,无论我传递什么作为 window_title 它总是返回:

Window not found!

当我print(hwnd) 它评估为0

文件标题:

【问题讨论】:

win32gui.FindWindowEx(None, None, None, window_title)替换FindWindow hwnd = win32gui.FindWindowEx(None, None, None, window_title) 还是同样的问题! Window not found! 我刚刚在我的机器上运行了它,它可以满足您的需求 知道为什么它不适用于我的吗? Windows 10 打开计算器,运行脚本(按照我的建议进行修改) 【参考方案1】:

问题出在这里 - hwnd = win32gui.FindWindow(window_title, None)

将其替换为win32gui.FindWindowEx(None, None, None, window_title),它应该可以工作。

Docs

编辑:

win32gui.FindWindow(None, window_title) 也应该可以工作。

【讨论】:

以上是关于无法捕获窗口标题python的主要内容,如果未能解决你的问题,请参考以下文章

无法在 QopenGLWidget 中捕获 QkeyEvent

从 C++ 嵌入式解释器捕获 python 窗口输出

未捕获的类型错误:无法在“窗口”上执行“requestAnimationFrame”:作为参数 1 提供的回调不是函数

node webkit- 从父窗口捕获 iframe 鼠标事件

BitBlt 无法正确捕获标题栏

捕获访问-应用程序窗口恢复/最大化事件