要获取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控件显示的文本。如果窗口使用了自定义绘制或其他非标准控件,可能无法获取到所有文本信息。
网友回复