要获取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控件显示的文本。如果窗口使用了自定义绘制或其他非标准控件,可能无法获取到所有文本信息。
网友回复
deepseek v4与glm5.1 kim2.6 qwen3.6哪个ai模型更强更好用?
gpt-image2能直接将图片转成分层透明的psd设计文件?
claude code、codex、gemini cli如何切换国内大模型使用?
蒸馏最强ai大模型是中小ai模型低成本升级的最好通道?
arena.ai上为啥没有最新的claude4.7及gpt5.5呢?
ai大模型公司为啥开始大量招聘文科生了?
cloudflared如何在低版本centos6或7上安装?
bfwsoa框架如何开启异步缓存与异步任务模式?
selenium如何获取网页js加载渲染后的真实dom结构?
go编写的Eino与python编写的langchain如何选择?


