Как получить тексты элементов в IAccessible, роль которого в списке - PullRequest
0 голосов
/ 02 апреля 2020

Я занимаюсь разработкой приложения, подобного Narrator (программа, которая читает текст из некоторого windows). Платформа Windows.

Я использую Microsoft Active Accessibility для реализации этой функции. У меня было окно, которое отображало некоторые сообщения. Рассказчик мог прочитать их как «IEMsgView ... (содержащиеся сообщения)». Я вскоре получил интерфейс IAccessible этого Доступного объекта «IEMsgView». И я подтвердил, что есть только один такой объект, сравнивая его имя и местоположение.

// Let IAccessible *pList represent the one I got.

Позвонив по номеру pList->get_accChildCount(), я подтвердил, что у него было несколько дочерних объектов. Тем не менее pList->get_accChild() возвращает S_FALSE, когда я передал ему действительный дочерний идентификатор, что означало, что его дочерние элементы были элементами, а сам pList содержал информацию о них, согласно MSDN.

Однако после вызова каждого метода из pList, который мог бы дать мне что-то, но я все еще не мог получить сообщения, отображаемые в окне. Но Рассказчик действительно зачитал их! Поэтому должен быть какой-то способ получить его.

Может кто-нибудь сказать мне, как я могу получить эти сообщения? Мне нужно IAccessible или что-то еще?

...