使用UI自动化为Silverlight控件录制屏幕交互

时间:2010-10-01 04:03:15

标签: silverlight ui-automation screen-readers

我正在尝试使用UI Automation在我的Silverlight应用中记录屏幕交互。我有自动化对等设备用于我的控制设置,但我无法弄清楚如何跟踪这些控件。

对于我的WPF应用程序,我会抓住AutomationElement.RootElement,然后导航到我的应用程序并在我感兴趣的控件上设置自动化事件处理程序。

我如何为Silverlight应用做同样的事情?我希望每当我的应用运行时屏幕录像机都会自动启动。屏幕录像机必须位于我的应用程序中。但System.Windows.Automation silverlight命名空间没有AutomationElement类。那么我将如何在Silverlight中执行此操作?

感谢
Shivaprasad

1 个答案:

答案 0 :(得分:2)

正如您所观察到的,Silverlight中不存在AutomationElement类:UIAutomation API仅在完整的.Net框架中可用。 Silverlight仅作为UI自动化提供程序支持 - 也就是说,Silverlight应用程序可以由UI Automation控制,但它们无法控制其他应用程序。

出于这个原因,我认为您无法在Silverlight应用程序中创建屏幕录像机 - 除非您准备采取一些讨厌的黑客攻击。

此类黑客可能包括:

  • 使用Silverlight COM Automation调用新的UIAutomation COM API。除Silverlight外,用户还需要在其计算机上安装COM API。
  • 在.Net中创建一个“服务器”应用程序,您可以在执行实际UIAutomation工作的目标计算机上运行该应用程序,然后使用WCF从您的Silverlight应用程序与此进行通信。