Как вы пишете последовательную UI Automation для MS? MSAA & UI Automation, кажется, не пересекаются - PullRequest
0 голосов
/ 02 февраля 2010

Работа над общим инструментом автоматизации, с учетом перехода от перехватчиков сообщений Win32 к .net UI Automation, однако набор функций автоматизации пользовательского интерфейса не охватывает все, что есть в Win32, и все же, похоже, не поддерживает весь графический интерфейс наWindows.

Одним из таких примеров является Windows Live Messenger.

Windows Live Messenger 2009 все еще использует более старый DirectUIHwnd для рисования графического интерфейса.Это означает, что вы не можете использовать сообщения Windows для отправки элементам управления, потому что элементы управления не имеют своего собственного HWND.Похоже, что это нарушает новую платформу .net UI Automation, хотя документация выглядит так, как будто ее можно объединить в документ UI Automation и Microsoft Active Accessibility .Глядя на MS Accessibility указывает на Active Accessibility 2.0 SDK Tools , который показал, что MSAA может взаимодействовать с содержимым.

Есть ли хитрость для получения более старой технологии MSAA, котораяUI Automation, похоже, пытается заменить на работу с UI Automation?

Я бы предпочел не иметь несколько решений, пытающихся автоматизировать одни и те же окна для окон, в отличие от Windows Live Messenger, где каждый из этих методов действителен и будетработа.

1 Ответ

1 голос
/ 12 марта 2010

Возможно, вы захотите взглянуть на версию 3 UIAutomation API , впервые выпущенную как часть Windows 7, но теперь доступную для XP и Vista. Я считаю, что улучшена поддержка взаимодействия с целевыми объектами MSAA.

Этот новый API основан на COM, а не управляется; но взгляните на Адаптер COM-to .Net автоматизации пользовательского интерфейса на CodePlex. Это берет COM Api и адаптирует его так, чтобы оно имело ту же «форму», что и текущий управляемый API UIAutomation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...