Skip to content Skip to sidebar Skip to footer

Python: How To Get The Text Label From Another Program Window?

I want to read text labels from another program, with Python. I think I have to use WM_GETTEXT, but I don't know how and I couldn't find anything on the internet. My program gets t

Solution 1:

If the text of your window has more than 20 characters, then the buffer you have created is too small. Try expanding it to more than you're likely to need:

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

If you want to get to the controls within the main window, then use EnumChildWindows, passing the handle of the parent window. You may need to do this recursively.

Solution 2:

win32gui.PyMakeBuffer has been deprecated. Also, buffer is a builtin function, so don't use it as a variable name.

Instead, just do this:

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

Post a Comment for "Python: How To Get The Text Label From Another Program Window?"