Ranorex 是用于 Windows 的用户界面测试工具。如果 UI 元素支持 Microsoft Active Accessiblity (MSAA),那么它可以检索有关元素的丰富信息,这对于编写测试脚本非常有用。
我们在 VB6 中有很多不支持 MSAA 的遗留代码。
我正在尝试将这种支持添加到我们的一些 VB6 用户控件中,如下所示。
我使用 ATL 在 C++ 中创建了一个 ActiveX 组件。这包含一个实现接口 IAccessible 的辅助类。它还包含一个可以从 VB6 调用的初始化函数。
VB6 UserControl 创建辅助对象并将其窗口句柄和名称传递给初始化函数。帮助对象子类化窗口并处理 WM_GETOBJECT 消息,为窗口提供 IAccessible 接口。
我已经调试了代码,据我所知,它正在工作。Ranorex Spy 工具获取 IAccessible 接口并调用接口上的方法。
但是,Ranorex 实际上并没有显示它似乎通过此界面获取的任何信息。
我知道这是一个非常具体的问题,但是是否有人有实现 IAccessible 以在 Ranorex 或其他类似测试工具中使用的经验?
我很乐意提供我的代码,但我认为这对于正常发布来说太过分了。