c++ - Microsoft Active Accessibility、VB6 和 Ranorex

标签 c++ vb6 atl ranorex iaccessible

Ranorex 是 Windows 的用户界面测试工具。如果 UI 元素支持 Microsoft Active Accessibility (MSAA),那么它可以检索有关元素的丰富信息,这对于编写测试脚本非常有用。

我们在不支持 MSAA 的 VB6 中有很多遗留代码。

我正在尝试将这种支持添加到我们的一些 VB6 用户控件中,如下所示。

我已经使用 ATL 在 C++ 中创建了一个 ActiveX 组件。这包含一个实现接口(interface) IAccessible 的辅助类。它还包含一个可以从 VB6 调用的初始化函数。

VB6 UserControl 创建助手对象并将其窗口句柄和名称传递给初始化函数。帮助对象子类化窗口并处理 WM_GETOBJECT 消息,为窗口提供 IAccessible 接口(interface)。

我已经对代码进行了调试,据我所知,它正在运行。 Ranorex Spy 工具获取 IAccessible 接口(interface)并调用接口(interface)上的方法。

但是,Ranorex 实际上并没有显示它似乎通过此界面获取的任何信息。

我知道这是一个非常具体的问题,但是有人有在 Ranorex 或其他类似测试工具中实现 IAccessible 的经验吗?

我很乐意提供我的代码,但我认为这对于正常发布来说太多了。

最佳答案

这似乎从未被广泛使用。我找到了一些我可以分享的面包屑,所以也许这些会有一些值(value)?

首先:

Microsoft Active Accessibility 2.0 ships as a standard system component in Microsoft Windows XP...

这是来自 MSAA20RDK\redist.txt 并且继续讨论如何将它安装到 Win2K 和更早版本中。据我所知,XP 及更高版本中包含这些部件,因此您可能不需要下载 RDK,它基本上没有任何信息,大部分只有 DLL。

不过这里有一个链接:

Microsoft Active Accessibility 2.0 Redist

也许更有用,请注意这是下载 Word DOC 的“实时”链接:

Microsoft Active Accessibility 2.0

我没有在 MS Downloads 找到讨论它的“页面”链接。这是一份较大的文档,提供了许多细节,几乎完全适用于 C++ 程序员。然而,VB6 上有一些一点点

也就是说它告诉你的很少,除了:

Visual Basic Sample Programs

The book Advanced Microsoft Visual Basic 6.0, 2nd Edition (Mandelbrot Set International, Ltd.) includes a chapter that discusses Active Accessibility. The chapter provides sample code that demonstrates how to use key Active Accessibility APIs. (Microsoft Press, ISBN 1-57231-893-7)

还有一点,但不多。引用的书可能很难再找到了,我只在亚马逊上看到一本意大利语的书,但四处寻找,第 3 方可能会在那里或在 eBay 上出售,等等。

在此链接:Microsoft Active Accessibility来自该 Word DOC 的信息似乎是重复的,尽管它可能是最新的。

关于c++ - Microsoft Active Accessibility、VB6 和 Ranorex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523189/

相关文章:

c++ - 如何使用前向声明类的成员函数?

c++ - 从 DLLMain 调用托管代码

c++ - ActiveX 属性(从 Visual Basic 访问)是否可以在运行时按程序生成?

Vb6:通过浏览按钮选择稍后使用的文件

c++ - 无法使用 Visual Studio 2010 调试 C++ BHO DLL

c++ - 使用 C++14 编译器而不是 C++11 进行编译时,性能会得到提升吗?

c++ - 在 C++ 中计算 10^9 中的数字

c# - COM 类可见性 : C# to VB6

javascript - 如何将 SAFEARRAY(字节数组)放入 HTML 隐藏字段

data-structures - 为什么 avl 树的搜索速度比红黑树快?