0

使用通用自动化工具,考虑从 Win32 消息挂钩转移到 .net UI 自动化,但是 UI 自动化的功能集并没有涵盖我们在 Win32 中拥有的所有功能,并且似乎仍然不支持 Windows 上的所有 GUI。

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

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

是否有一些技巧可以让 UI 自动化似乎试图取代的旧 MSAA 技术真正与 UI 自动化一起工作?

与 Windows Live Messenger 不同,我宁愿没有多个解决方案尝试为 Windows 自动化相同的窗口,因为 Windows Live Messenger 中的每一种技术都是有效的并且可以工作。

4

1 回答 1

1

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

这个新的 API 是基于 COM 的,而不是托管的;但请查看 CodePlex 上的UI 自动化 COM-to .Net 适配器。这需要 COM Api 并将其调整为与当前托管的 UIAutomation API 具有相同的“形状”。

于 2010-03-12T12:43:18.650 回答