我想使用MSAA自动化简单的Windows应用程序。我没有想到如何找到控件(比如说TextBox
和Button
)并获取它们的值(比如获取TextBox
的值,然后点击按钮)。
答案 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 ++开发自动化客户端应用程序,我建议:
这将安装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文档开始 - 我推荐第一个:
Active Accessibility Client Interfaces and Functions