Unfortunately there isn't much you can do to get the window text. The tried and true method is by GetWindowText. If that doesn't work, well then the window procedure doesn't provide the option to get text via the WM_GETTEXT. Since it is a custom class there is really no way to determine how to get the text. Since it's in another process, you can't just pass a pointer to your buffer and send a million WM_USER+x messages and see if one works. Your best bet would be to contact whoever wrote the software and see if they have the appropriate documentation you need to get the text.