您如何为MS编写一致的UI自动化? MSAA& UI自动化似乎不重叠

时间:2010-02-01 21:22:48

标签: .net ui-automation

使用通用自动化工具,考虑从Win32 Message钩子移动到.net UI Automation,但是UI Automation的功能集并未涵盖Win32中的所有功能,但似乎仍然不支持所有GUI视窗。

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

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

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

我宁愿没有多个解决方案试图为Windows自动化相同的窗口,这与Windows Live Messenger不同,其中每种技术都有效且可以使用。

1 个答案:

答案 0 :(得分: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相同的“形状”。