如何使用MSAA自动化简单的Windows窗体应用程序?

时间:2013-03-19 12:17:30

标签: c# winforms ui-automation msaa

我想使用MSAA自动化简单的Windows应用程序。我没有想到如何找到控件(比如说TextBoxButton)并获取它们的值(比如获取TextBox的值,然后点击按钮)。

2 个答案:

答案 0 :(得分:3)

为什么要自动使用MSAA?微软目前的方式是UI Automation

来自维基百科(强调我的):

  

UIA类似于Microsoft Active Accessibility(MSAA)   提供了一种公开和收集用户信息的方法   界面元素和控件,以支持用户界面   可访问性和软件测试自动化。 然而,UIA更新   提供比MSAA更丰富的对象模型的技术...

使用UI自动化,您可以通过创建本机或.NET应用程序或使用依赖于UI自动化的RIATest等第三方工具进行自动化。

(发言人:我隶属于RIATest)。

答案 1 :(得分:2)

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

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

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

  1. 安装Windows SDK for Windows 7 and .NET Framework 4

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

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

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

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

  5. 编写自动化代码:)

  6. 一个重要的选择是决定是否使用事件驱动技术来定位您的元素,或者只是从顶层(桌面)开始,在桌面的子元素中找到您的应用,并深入了解您的应用程序的元素树。

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

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

    Active Accessibility Client Interfaces and Functions

    Active Accessibility User Interface Services

    Active Accessibility Start Page