【问题标题】:How to Automate simple Windows Form Application using MSAA?如何使用 MSAA 自动化简单的 Windows 窗体应用程序?
【发布时间】:2013-03-08 02:46:42
【问题描述】:

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

【问题讨论】:

    标签: c# winforms ui-automation msaa


    【解决方案1】:

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

    来自维基百科(重点是我的):

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

    借助 UI 自动化,您可以通过创建本机或 .NET 应用程序或使用依赖于 UI 自动化的第三方工具(如 RIATest)来实现自动化。

    (声明:我隶属于 RIATest)。

    【讨论】:

    • 我计划自动化的应用是使用 MSAA 技术。
    • @CSharp,您的应用使用 MSAA 技术这一事实不应使其不太适合使用 UIA 实现自动化。事实上,UIA 会在需要时在内部使用 MSAA。
    【解决方案2】:

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

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

    要开始使用 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 自动化”切换到“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 Client Interfaces and Functions

    Active Accessibility User Interface Services

    Active Accessibility Start Page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多