【问题标题】:How do you write a consistent UI Automation for MS? MSAA & UI Automation don't seem to overlap您如何为 MS 编写一致的 UI 自动化? MSAA 和 UI 自动化似乎没有重叠
【发布时间】:2011-01-11 22:03:22
【问题描述】:

使用通用自动化工具,考虑从 Win32 消息挂钩转移到 .net UI 自动化,但是 UI 自动化的功能集并没有涵盖我们在 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 自动化似乎试图取代的旧 MSAA 技术真正与 UI 自动化一起工作?

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

【问题讨论】:

    标签: .net ui-automation


    【解决方案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 具有相同的“形状”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 2019-01-05
      • 2018-11-17
      • 2022-11-10
      • 2017-01-28
      • 2011-03-10
      相关资源
      最近更新 更多