+
95
-

回答

要获取Windows窗口内的所有文本信息,可以使用Python的pywin32库来与Windows API进行交互。以下是一个示例代码,展示了如何获取指定窗口内的所有文本信息:

首先,确保你已经安装了pywin32库。如果没有安装,可以使用以下命令进行安装:

pip install pywin32

然后,使用以下代码来获取窗口内的所有文本信息:

import win32gui
import win32con
import win32api

def get_window_text_length(hwnd):
    return win32gui.SendMessage(hwnd, win32con.WM_GETTEXTLENGTH)

def get_window_text(hwnd):
    text_length = get_window_text_length(hwnd) + 1
    buffer = win32gui.PyMakeBuffer(text_length)
    win32gui.SendMessage(hwnd, win32con.WM_GETTEXT, text_length, buffer)
    address, length = buffer[:2]
    return win32gui.PyGetString(address, length)

def enum_child_windows(hwnd, lParam):
    if win32gui.IsWindowVisible(hwnd):
        text = get_window_text(hwnd)
        if text:
            print(f"Window handle: {hwnd}, Text: {text}")
    return True

def get_all_text_in_window(window_title):
    hwnd = win32gui.FindWindow(None, window_title)
    if hwnd:
        print(f"Found window with handle: {hwnd}")
        win32gui.EnumChildWindows(hwnd, enum_child_windows, None)
    else:
        print("Window not found")

if __name__ == "__main__":
    window_title = "Your Window Title Here"  # Replace with the title of the window you want to capture
    get_all_text_in_window(window_title)

在这个示例中:

get_window_text_length 函数用于获取窗口文本的长度。get_window_text 函数用于获取窗口的文本内容。enum_child_windows 函数用于枚举窗口的所有子窗口,并获取它们的文本内容。get_all_text_in_window 函数用于查找指定标题的窗口,并获取其所有子窗口的文本内容。

请将 window_title 替换为你想要获取文本的窗口的标题。运行这个脚本后,它会输出所有找到的子窗口的句柄和文本内容。

注意:这个方法只能获取窗口中通过标准Windows控件显示的文本。如果窗口使用了自定义绘制或其他非标准控件,可能无法获取到所有文本信息。

网友回复

我知道答案,我要回答