Microsoft Active Accessibility,VB6和Ranorex

时间:2016-02-20 12:23:06

标签: c++ vb6 atl ranorex iaccessible

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

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

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

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

VB6 UserControl创建辅助对象并将其Window Handle和name传递给初始化函数。辅助对象是窗口的子类,处理WM_GETOBJECT消息,为窗口提供IAccessible接口。

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

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

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

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

1 个答案:

答案 0 :(得分:1)

这似乎从未被广泛使用过。我发现了一些我可以分享的面包屑,所以也许这些会有一些价值吗?

首先:

  

Microsoft Active Accessibility 2.0作为Microsoft Windows XP中的标准系统组件提供......

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

这是一个链接:

Microsoft Active Accessibility 2.0 Redist

可能更有用的东西,请注意,这是下载Word DOC的“实时”链接:

Microsoft Active Accessibility 2.0

我没有在MS下载中找到讨论它的“页面”链接。这是一个更大的文档,提供了许多细节,几乎完全是为了C ++程序员。然而,VB6上有一个一点

那说它除了告诉你很少:

  

Visual Basic示例程序

     

本书高级Microsoft Visual Basic 6.0,第2版(Mandelbrot Set   International,Ltd。)包括一章讨论Active   可访问性。本章提供了演示如何操作的示例代码   使用关键的Active Accessibility API。 (微软出版社,ISBN 1-57231-893-7)

还有一点但不多。引用的这本书可能很难找到,我只在亚马逊上看到一本意大利语,但是在那里挖掘,第三方可能会在那里或在eBay等上卖。

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