首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码UI和MSAA层次结构

编码UI和MSAA层次结构
EN

Stack Overflow用户
提问于 2014-07-21 12:09:42
回答 2查看 489关注 0票数 0

我使用MSAA服务器(Miscrosoft Active Active)打开一个控件,以便使用编码的UI对其进行自动化测试。我之所以使用MSAA,是因为代码是为VS2008编写的,因此UI自动化不可用。

除了在同一窗口上有两个控制元素的情况外,它工作得很好。问题在于生成的UI Map层次结构。这是错误的,但在这种情况下,当你处理一个控制,工作正常。

使用MSAA示例的问题可以在sdk上找到:

Microsoft的MSAA服务器示例

所以,当我映射窗口时,我得到了正确的映射,但是当我在列表中映射一个元素时,元素是正确的,但是没有映射到列表中:

映射事件和断言的编码UI映射

我的应用程序中也有同样的问题。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-06 09:25:30

我已经修正了在创建新对象时使用静态std::map<string,int>获取标识符的问题。

因此,当创建一个新对象时,我使用当前窗口标题查询静态结构(我知道这是一个危险的操作,但它有效),并获得一个新的标识符。

当调用MSAA方法:accValue时,返回标识符

我将编码-ui的值搜索属性添加到该属性中,它按照我的预期工作。

票数 0
EN

Stack Overflow用户

发布于 2014-08-22 07:48:27

我没有添加和回答Windows : WM_GETOBJECT,而是覆盖了CWnd类中的可访问方法。

问题是get CWnd::get_accName( VARIANT,BSTR *pszName)返回的名称在窗口的所有窗口中都是相同的,所以我在类中修改了这个方法,以添加一些额外的信息来标识我的元素。

而且它是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24864770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档