添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
强健的乌冬面  ·  DateTime.Today 屬性 ...·  1 月前    · 
冷冷的板凳  ·  esl,prml 和 mlapp - CSDN文库·  7 月前    · 
奋斗的荔枝  ·  dynamic 数据类型 - Azure ...·  10 月前    · 

python获取windows窗口文本

可以使用 pywin32 模块获取 Windows 窗口的文本内容。以下是获取窗口句柄和文本的基本方法:

import win32gui
# 获取窗口句柄
handle = win32gui.FindWindow(None, '窗口标题')
# 获取窗口文本
text = win32gui.GetWindowText(handle)
# 获取窗口类名
class_name = win32gui.GetClassName(handle)
# 获取子窗口句柄列表
child_handles = []
win32gui.EnumChildWindows(handle, lambda hwnd, param: param.append(hwnd), child_handles)

其中,第一个参数是父窗口句柄,第二个参数是回调函数,第三个参数是传递给回调函数的参数。在上面的代码中,我们使用 lambda 表达式定义了一个简单的回调函数,它将找到的子窗口句柄添加到传递的列表中。

有时候,窗口的文本可能是动态生成的,比如浏览器中的页面内容。这种情况下,我们可以使用 Windows 的 UI Automation API 来获取窗口的文本内容,以下是一个示例代码:

import comtypes.client
# 获取窗口句柄
handle = win32gui.FindWindow(None, '窗口标题')
# 初始化 UI Automation API
UIA = comtypes.client.GetModule('UIAutomationCore.dll')
IUIA = comtypes.CoCreateInstance(UIA.CUIAutomation().CLSID, interface=UIA.IUIAutomation)
# 获取窗口元素
element = IUIA.ElementFromHandle(handle)
# 获取窗口文本
text_pattern = IUIA.Patterns.Text.Pattern
text_element = element.GetCurrentPattern(text_pattern).GetParentElement().GetCurrentPattern(text_pattern)
text = text_element.DocumentRange.GetText(-1)

这段代码使用了 comtypes 模块来调用 UI Automation API,获取窗口的文本内容。需要注意的是,这种方法需要安装 Windows SDK 或者 Windows App Certification Kit,否则无法使用 UI Automation API。

  •