2010-02-01 26 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具有相同的「形狀」。