2016-02-20 5 views
0

Ranorex - это инструмент для тестирования пользовательского интерфейса для Windows. Если элементы пользовательского интерфейса поддерживают Microsoft Active Accessiblity (MSAA), тогда он может получать богатую информацию об элементах, что очень полезно для написания тестовых скриптов.Microsoft Active Accessibility, VB6 и Ranorex

У нас есть много устаревшего кода в VB6, который не поддерживает MSAA.

Я пытаюсь добавить эту поддержку в некоторые из наших VB6 UserControls следующим образом.

Я создал компонент ActiveX на C++, используя ATL. Он содержит вспомогательный класс, который реализует интерфейс IAccessible. Он также содержит функцию инициализации, которую можно вызывать из VB6.

VC6 UserControl создает вспомогательный объект и передает его дескриптор окна и имя в функцию инициализации. Вспомогательный объект подклассифицирует окно и обрабатывает сообщение WM_GETOBJECT, чтобы предоставить интерфейс IAccessible для окна.

Я отлаживал код и, насколько я могу судить, он работает. Инструмент Ranorex Spy получает интерфейс IAccessible и вызывает методы на интерфейсе.

Однако Ranorex фактически не показывает какую-либо информацию, которая, по-видимому, получена через этот интерфейс.

Я знаю, что это очень специфическая проблема, но кто-нибудь имеет опыт внедрения IAccessible для использования в Ranorex или в других подобных инструментах тестирования?

Я был бы рад предоставить свой код, но я думаю, что это слишком много для обычной публикации.

ответ

1

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

Первое:

Microsoft Active Accessibility 2.0 поставляется как стандартный компонент системы в Microsoft Windows XP ...

Это из MSAA20RDK \ REDIST.TXT и продолжает говорить о том, как он может быть установлен в Win2K и ранее. Насколько я могу определить, части и части включены в XP и позже, поэтому вам, вероятно, не нужна загрузка RDK, в которой практически нет информации вообще и в основном только DLL.

Вот ссылка, хотя:

Microsoft Active Accessibility 2.0 Redist

Что-то, возможно, более полезным, отметить, что это "живой" ссылке, чтобы загрузить DOC Word:

Microsoft Active Accessibility 2.0

I не нашли ссылку «страница» в MS Downloads, которая обсуждает ее. Это более крупный документ, дающий много деталей, почти полностью для программистов на С ++. Однако есть немного на VB6.

Это сказало, что это говорит вам немного за исключением:

Основные программы визуальных образцы

Книги Advanced Microsoft Visual Basic 6.0, второе издание (Манделброт International, Ltd.) включает в себя главу, рассматривающую Active Доступность. В главе приведен пример кода, который демонстрирует, как использовать ключевые функциональные API. (Microsoft Press, ISBN 1-57231-893-7)

Существует немного больше, но не много. Процитированную книгу можно было бы довольно трудно найти, я только видел ее на итальянском языке на Amazon, но копался, и третье лицо могло продавать там или на eBay и т. Д.

По этой ссылке: Microsoft Active Accessibility информация из этого Word DOC похоже, дублируется, хотя, возможно, это более актуально.

+0

Спасибо @ Bob77, я нашел образец программы из книги, но, похоже, использует и не реализует интерфейс. Используются копии книги на Amazon. Функция «Look Inside» показывает оглавление, а в главе 16 - о доступности, но я не очень надеюсь, что это поможет. –

+0

Из того, что я могу найти по теме, программы VB6 не могут быть серверами, а только клиентами. Сожалею. – Bob77

+0

Вчера я был слеп. Мой интерфейс IAccessible работает, но шпион Ranorex теперь показывает окна дважды, один раз с именем ThunderRT6UserControlDC (из VB6) и один раз с именем, возвращаемым через интерфейс доступности. Теперь мне просто нужно собрать их вместе :-). –