从另一个应用程序的窗体/字段中获取文本

2024-10-02 02:34:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从另一个应用程序导入/提取表单的值,以便在使用python和pywin32的代码中使用。你知道吗

使用Spy++我计算出了需要针对的元素的句柄,但是我无法计算如何从元素中获取文本。你知道吗

目标应用程序的结构方式:

top app level
    (no name) class: MDIClient        (this is the centerWidget)
    (no name) class: ThunderRT6FormDC (occupies same space as centerwidget)
    (Ticket) class: ThunderRT6Frame  (Frame that holds all fields to extract from)
        (no name) class: NumEdit/DateEdit/TextEdit... (fields to import)
    (Information) class ThunderRT6Frame  (2nd frame with fields)
        (no name) class: NumEdit/DateEdit/TextEdit... (fields to import)
    (Process) class ThunderRT6Frame  (3rd frame with fields)
        (no name) class: NumEdit/DateEdit/TextEdit... (fields to import)
f = win32gui.FindWindow('ThunderRT6MDIForm', 'ApplicationName')
ex = win32gui.FindWindowEx(f, 0, 'MDIClient', None)
exx = win32gui.FindWindowEx(ex, 0, 'ThunderRT6FormDC', None)
exxx = win32gui.FindWindowEx(exx, 0, 'ThunderRT6Frame', None)
exxxx = win32gui.FindWindowEx(exxx, 0, 'NumEdit', None)

exxxx是我要从中提取标题/文本的句柄/元素。 我确信FindWindowEx在搜索Windows时不是正确的函数,但是我必须使用什么函数呢?你知道吗


Tags: tononameimportnone应用程序元素fields
1条回答
网友
1楼 · 发布于 2024-10-02 02:34:00

如果树中的两个“连续”窗口(例如exexx)之间的关系是一个-窗口,那么[MS.Docs]: FindWindowExW function(用win32gui.FindWindowEx包装)就应该起作用。你知道吗

另一种方法是使用[MS.Docs]: EnumChildWindows functionwin32gui.EnumChildWindows)-同时检查EnumWindows
有关详细信息,您可以查看:

在那里,您可以使用GetWindowTextWwin32gui.GetWindowTextW)来获取所需窗口的标题。你知道吗

相关问题 更多 >

    热门问题