2

我想使用 MSAA 自动化简单的 Windows 应用程序。我不知道如何找到控件(比如TextBoxand Button)并获取它们的值(比如获取值TextBox并单击按钮)。

4

2 回答 2

3

Why do you want to automate using MSAA? Microsoft's current way is UI Automation.

From Wikipedia (emphasis mine):

UIA is similar to Microsoft Active Accessibility (MSAA) in that it provides a means for exposing and collecting information about user interface elements and controls to support user interface accessibility and software test automation. However, UIA is a newer technology that provides a much richer object model than MSAA...

With UI Automation you can automate by creating a native or .NET application or use a 3rd party tool like RIATest that relies on UI Automation.

(Disclamer: I am affiliated with RIATest).

于 2013-05-09T13:58:14.550 回答
2

以下假设您将在 C/C++ 中开发您的自动化程序,因为我不确定从 .NET 使用 MSAA 是否容易(尽管有可能!)

如果您不想使用 C++,您可以使用 .NET 中的 MS UI 自动化进行调查。

要开始使用 MSAA 和 C++ 开发自动化客户端应用程序,我建议:

  1. 安装适用于 Windows 7 和 .NET Framework 4 的 Windows SDK

  2. 这将安装 Inspect.exe 工具 - 在以下位置找到它:

    Programs > Microsoft Windows SDK v7.1 > Tools > Inspect Objects

  3. 启动 Inspect.exe 并将左上方的下拉菜单从“UI Automation”切换到“MSAA”

  4. 启动被测应用程序并将鼠标悬停在其 UI 元素上 - 元素的 MSAA 属性应显示在 Inspect.exe 中

  5. 编写您的自动化代码:)

一个重要的选择是决定是使用事件驱动技术来定位您的元素,还是简单地从顶层(桌面)开始,在桌面的子元素中找到您的应用程序,然后深入到应用程序的元素树中从那里。

codeproject.com 上有一个很好的事件驱动 MSAA 教程:http: //www.codeproject.com/Articles/18290/Introduction-to-Microsoft-Active-Accessibility

MSAA 中基于树的导航的教程似乎更加稀缺。我将从 MS 文档开始 - 我推荐第一个:

Active Accessibility 客户端接口和功能

主动可访问性用户界面服务

活动辅助功能起始页

于 2013-03-22T18:04:25.657 回答