Получить текст из формы / поля другого приложения - PullRequest
1 голос
/ 28 июня 2019

Я пытаюсь импортировать / извлечь значения формы из другого приложения для использования в моем коде с использованием 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, но какую функцию мне нужно использовать?

1 Ответ

0 голосов
/ 10 июля 2019

[MS.Docs]: функция FindWindowExW (обернутая win32gui.FindWindowEx) должна добиться цели, если взаимосвязь между двумя "последовательными" окнами в дереве (например, ex exx ) является родительским - child one.

Другим способом будет использование [MS.Docs]:Функция EnumChildWindows (win32gui.EnumChildWindows) - также проверьте EnumWindows .
Для более подробной информации, вы можете взглянуть на:

Оттуда вы можете использовать GetWindowTextW (win32gui.GetWindowTextW), чтобы получить заголовок для нужного окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...