2010-02-01 56 views
0

考虑从Win32消息挂钩转换为.net UI自动化,但使用通用自动化工具时,UI自动化的功能集并不包含我们在Win32中的所有功能,似乎不支持Windows上的所有GUI。如何为MS编写一致的UI自动化? MSAA和UI自动化看起来没有重叠

一个这样的例子是Windows Live Messenger。

Windows Live Messenger 2009仍然使用较早的DirectUIHwnd来绘制gui。这意味着您不能使用Windows消息发送到控件,因为控件没有自己的HWND。它似乎也击败了新的.net用户界面自动化框架,尽管文档看起来好像可以在UI Automation and Microsoft Active Accessibility文档中加入一样。 看着MS Accessibility指向Active Accessibility 2.0 SDK Tools这表明MSAA可以与内容交互。

是否有一些技巧获得UI自动化似乎试图取代实际使用UI自动化的旧MSAA技术?

我宁愿没有多种解决方案试图自动化Windows相同的窗口,而不像Windows Live Messenger,其中每种技术都是有效的并且可行。

回答

1

您可能想看看version 3 of the UIAutomation API,它首先作为Windows 7的一部分发布,但现在可用于XP和Vista。我相信它改进了与MSAA启用目标交互的支持。

这个新的API是基于COM的,而不是托管;但看看CodePlex上的UI Automation COM-to .Net Adapter。这需要COM Api并使其与当前管理的UIAutomation API具有相同的“形状”。