Автоматизация приложения VB6 с элементами управления ActiveX - PullRequest
1 голос
/ 13 февраля 2009

У меня есть приложение VB6, у которого нет исходного кода. Это приложение использует сторонние элементы управления ActiveX. Я хочу автоматизировать эти элементы управления ActiveX. Можно ли получить ссылки IUnknowns или Object? Для некоторых из них я могу получить базовые HWND, но из того, что я могу сказать, нет общего способа конвертировать эти HWND в элемент управления ActiveX.

Некоторые программы тестирования позволяют создавать сценарии для приложений VB6 с элементами управления ActiveX. Как они это делают?

Ответы [ 3 ]

1 голос
/ 03 декабря 2009

Эти элементы управления ActiveX находятся в отдельной DLL? Если это так, вы можете использовать OLE View (инструмент VS 6.0), чтобы открыть DLL и просмотреть все интерфейсы, Coclasse и т. Д.

0 голосов
/ 14 февраля 2009

Извините, но VB6 EXE не содержит манифестов, необходимых для извлечения COM-объектов, которые он использует. Лучше всего попробовать некоторые из предложений rbobby, особенно по поводу отправки сообщений WM_XXX.

0 голосов
/ 14 февраля 2009

Возможно, вы сможете использовать DLL-инъекцию через библиотеку Microsoft Research Detours. По сути, вы хотели бы подключить сок для этих конкретных элементов управления. Вы должны быть очень осторожны, особенно если вы делаете что-то между потоками / процессами (правила COM-потоков очень важны).

В целом, Detours прост в использовании ... но я никогда не пробовал его с процедурами COM. Возможно, вы захотите взглянуть на другое решение.

Также обратите внимание, что Detours имеет некоторые лицензионные ограничения, которые могут повлиять на вашу способность распространять его.

Тестирующее программное обеспечение может просто отправлять соответствующие сообщения WM_XXX в определенные окна (например, WM_MOUSEMOVE).

...