Python: Как получить текстовую метку из другого окна программы?

Я хочу читать текстовые метки из другой программы с помощью Python. Я думаю, что мне нужно использовать WM_GETTEXT, но я не знаю, как и я ничего не мог найти в Интернете. Моя программа получает активное окно, но не читает текстовые метки. Поэтому я надеюсь, что кто-то может мне помочь.

EDIT: я добавил буфер и SendMessage Part. Например, я могу получить текст из редактора, но не из программы, с которой я пытаюсь получить текстовые метки.

У меня есть следующий код, который я нашел здесь в stackoverflow ( Получить текст из всплывающего окна ):

import win32gui import time while True: window = win32gui.GetForegroundWindow() title = win32gui.GetWindowText(window) if 'GLS Exportdatei' in title: control = win32gui.FindWindowEx(window, 0, 'static', None) buffer = win32gui.PyMakeBuffer(20) length = win32gui.SendMessage(control, win32con.WM_GETTEXT, 20, buffer) result = buffer[:length] print result time.sleep(1) 

Если текст вашего окна имеет более 20 символов, то созданный вами буфер слишком мал. Попытайтесь расширить его до большего, чем вам может понадобиться:

 buffer = win32gui.PyMakeBuffer(255) length = win32gui.SendMessage(control, win32con.WM_GETTEXT, 255, buffer) 

Если вы хотите перейти к элементам управления в главном окне, используйте EnumChildWindows , передав дескриптор родительского окна. Возможно, вам придется делать это рекурсивно.

win32gui.PyMakeBuffer устарел. Кроме того, buffer является встроенной функцией, поэтому не используйте его как имя переменной.

Вместо этого просто выполните следующее:

 buf = " " * 255 length = win32gui.SendMessage(control, win32con.WM_GETTEXT, 255, buf) result = buf[:length]