Читать текст из формы Windows - PullRequest
2 голосов
/ 24 апреля 2010

Я бы хотел, если бы по какой-либо другой причине, кроме академических, можно было читать текст, написанный в форме в приложении Windows. Программа, кажется, написана не на .NET, но в терминах .NET, я думаю, вы бы описали программу как имеющую форму с меткой, и я хотел бы прочитать текст с этой метки.

Мне кажется, я вижу, что этот текст записывается на экран с помощью функции User32! TextOut (и в других областях User32! DrawString). Однако было бы неплохо, если бы мне не пришлось подключать эту функцию для получения информации, которую я ищу, а вместо этого, если бы я мог просто прочитать ее непосредственно из формы.

Итак, учитывая дескриптор окна, можно ли прочитать текст, который был записан в это окно, с помощью таких функций, как TextOut и DrawString, с использованием какого-либо похожего API или другого умного средства? Или я поступаю неправильно? Должен ли я просто подключить функцию и искать текст в каждом звонке и молиться?

Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2010

Если текст хранится стандартным способом на элементе управления, вы можете использовать SendMessage

Win32.SendMessage(controlHandle, Win32.WM_GETTEXTLENGTH, 0, null);

Если элемент управления был написан с учетом требований безопасности, текст почти наверняка не будет сохранен в формате, который можно запросить через Windows API.

Раньше я использовал программу под названием Snadboy Revelation для извлечения забытых паролей из программ (которые просто отображались как *****). Откровение использует ту же технику. Однако большинство современных программ скрывают текст пароля и аналогичные поля, поэтому в наши дни это не так уж и полезно.

UPDATE:

Найден исходный код для приложения Windows Spy.

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