我想使用 MSAA 自动化简单的 Windows 应用程序。我不知道如何找到控件(比如TextBox
and Button
)并获取它们的值(比如获取值TextBox
并单击按钮)。
2 回答
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).
以下假设您将在 C/C++ 中开发您的自动化程序,因为我不确定从 .NET 使用 MSAA 是否容易(尽管有可能!)
如果您不想使用 C++,您可以使用 .NET 中的 MS UI 自动化进行调查。
要开始使用 MSAA 和 C++ 开发自动化客户端应用程序,我建议:
这将安装 Inspect.exe 工具 - 在以下位置找到它:
Programs > Microsoft Windows SDK v7.1 > Tools > Inspect Objects
启动 Inspect.exe 并将左上方的下拉菜单从“UI Automation”切换到“MSAA”
启动被测应用程序并将鼠标悬停在其 UI 元素上 - 元素的 MSAA 属性应显示在 Inspect.exe 中
编写您的自动化代码:)
一个重要的选择是决定是使用事件驱动技术来定位您的元素,还是简单地从顶层(桌面)开始,在桌面的子元素中找到您的应用程序,然后深入到应用程序的元素树中从那里。
codeproject.com 上有一个很好的事件驱动 MSAA 教程:http: //www.codeproject.com/Articles/18290/Introduction-to-Microsoft-Active-Accessibility
MSAA 中基于树的导航的教程似乎更加稀缺。我将从 MS 文档开始 - 我推荐第一个: