Чтение текста с помощью UI Automation

Я пытаюсь создать простую программу, которая будет отслеживать окно чата приложения и воспроизводить звук при появлении определенной строки. Во-первых, как мне найти правильный элемент?

Используя «Inspect.exe», единственное, что я вижу уникального в окне чата, это эта строка в разделе «Как найдено»: hwnd=0x00000000003B1A1A 32bit class="PokerStarsChatClass" style=0x54000000 ex=0x0.

Поэтому я предполагаю, что мне нужно как-то искать этот класс PokerStarsChatClass. Все учебники, которые я искал, не могли мне помочь. Может ли кто-нибудь помочь?

изменить: добавить скриншоты: (название приложения «pokerstars») http://img16.imagefra.me/i75i/rapala/w8r4_afd_uakec.png


person Jynn    schedule 18.05.2015    source источник
comment
Вы смотрели эту статью? Звучит многообещающе: codeproject.com/Articles /289028/   -  person Adolfo Perez    schedule 18.05.2015
comment
Что также (обычно) уникально, так это дерево элементов на панели дерева (если у вас нет панели дерева, это потому, что ваш inspect.exe слишком стар). Если у вас есть реальный образец приложения, мы можем продолжить расследование, потому что не все приложения можно автоматизировать с помощью пользовательского интерфейса.   -  person Simon Mourier    schedule 18.05.2015
comment
добавлен скриншот результатов 'inspect.exe'.   -  person Jynn    schedule 18.05.2015


Ответы (1)


SDK автоматизации UiPath предлагает несколько хороших инструментов для захвата текста из произвольных окон, но это не так. свободно. Он предоставляет как минимум три различных метода очистки текста окна. Вполне возможно, что ни один из них не будет работать для интересующего вас приложения/окна.

Без использования SDK автоматизации вы можете относительно безболезненно получить текст, если окно чата ответит на сообщение WM_GETTEXT (а на самом деле нет другого способа узнать, кроме как проверить это). Во-первых, вам нужно будет использовать комбинацию GetWindow и GetClassName, оба через вызов платформы, чтобы найти дескриптор окна чата. После этого вы можете отправить сообщение WM_GETTEXT напрямую.

person RogerN    schedule 18.05.2015
comment
спасибо за ваши предложения. Я думаю, что с моей стороны было немного глупо даже пытаться это сделать, поскольку я начинающий программист и понятия не имею, как реализовать то, что вы предлагаете. Я могу заплатить кому-то в odesk, чтобы он сделал это для меня. - person Jynn; 18.05.2015