使用通用自动化工具,考虑从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不同,其中每种技术都有效且可以使用。
答案 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相同的“形状”。