Запись экранных взаимодействий с использованием автоматизации пользовательского интерфейса для элементов управления Silverlight

Я пытаюсь использовать автоматизацию пользовательского интерфейса для записи взаимодействий с экраном в моем приложении Silverlight. У меня есть одноранговые узлы автоматизации для моей настройки управления, но я не могу понять, как отслеживать эти элементы управления.

Для моего приложения WPF я бы взял AutomationElement.RootElement, а затем перешел в свое приложение и настроил обработчики событий автоматизации для элементов управления, которые меня интересуют.

Как мне сделать то же самое для приложения Silverlight? Я хочу, чтобы средство записи экрана запускалось автоматически при каждом запуске моего приложения. Программа записи экрана должна находиться в моем приложении. Но в пространстве имен System.Windows.Automation silverlight нет класса AutomationElement. Итак, как мне сделать это в Silverlight?

Спасибо, Шивапрасад


person Shivaprasad    schedule 01.10.2010    source источник


Ответы (1)


Как вы заметили, класса AutomationElement в Silverlight не существует: API-интерфейс UIAutomation доступен только в полной структуре .Net. Silverlight поддерживается только в качестве поставщика автоматизации пользовательского интерфейса, то есть приложениями Silverlight можно управлять с помощью автоматизации пользовательского интерфейса, но они не могут управлять другими приложениями.

По этой причине я не думаю, что вы сможете создать свое устройство записи экрана в приложении Silverlight - если только вы не готовы прибегнуть к каким-нибудь неприятным хакам.

Такие взломы могут включать:

  • Использование Silverlight COM Automation для вызова нового UIAutomation COM API. Пользователи должны будут установить на своих компьютерах COM API в дополнение к Silverlight.
  • Создайте «серверное» приложение в .Net, которое вы можете запустить на целевой машине, которая выполняет фактическую работу UIAutomation, а затем взаимодействовать с ним из вашего приложения Silverlight с помощью WCF.
person Samuel Jack    schedule 01.10.2010