2014-09-14

源代码 

目录

引用程序集
提供程序接口
公开服务器端 UI 自动化提供程序
从 UI 自动化提供程序返回属性
从 UI 自动化提供程序中引发事件
在 UI 自动化提供程序中支持控件模式
WinForm Sample
参考

引用程序集[1]


 返回

UI 自动化提供程序项目必须引用以下程序集:

  • UIAutomationProviders.dll
  • UIAutomationTypes.dll 
  • WindowsBase.dll

提供程序接口[1]


 返回

每个 UI 自动化提供程序必须实现下列接口之一。

接口

说明

IRawElementProviderSimple

提供窗口中承载的简单控件的功能,包括对控件模式和属性的支持。

IRawElementProviderFragment

为复杂控件中的元素添加功能,包括在片段中导航、设置焦点和返回元素的边框。 

IRawElementProviderFragmentRoot

为复杂控件中的根元素添加功能,包括将子元素定位于指定坐标以及设置整个控件的焦点状态。

IRawElementProviderSimple的metadata见图1

Server-Side UI Automation Provider - WinForm Sample

图1 metadata - IRawElementProviderSimple 

公开服务器端 UI 自动化提供程序[2]


 返回

重写窗口过程以捕获 WM_GETOBJECT,以响应客户端应用程序发送到控件窗口的 WM_GETOBJECT 消息时,返回实现 IRawElementProviderSimple(或派生接口)的对象。

 1         /// <summary>
 2         /// Handles WM_GETOBJECT message; others are passed to base handler.
 3         /// </summary>
 4         /// <param name="m">Windows message.</param>
 5         /// <remarks>
 6         /// This method enables UI Automation to find the control.
 7         /// </remarks>
 8         [PermissionSetAttribute(SecurityAction.Demand, Unrestricted = true)]
 9         protected override void WndProc(ref Message m)
10         {
11             const int WM_GETOBJECT = 0x003D;
12 
13             if ((m.Msg == WM_GETOBJECT) && (m.LParam.ToInt32() == AutomationInteropProvider.RootObjectId))
14             {
15                 m.Result = AutomationInteropProvider.ReturnRawElementProvider(
16                     Handle, m.WParam, m.LParam, (IRawElementProviderSimple)this);
17                 return;
18             }
19             base.WndProc(ref m);
20         }
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-25
  • 2021-08-07
  • 2021-11-20
  • 2021-10-20
猜你喜欢
  • 2021-10-01
  • 2021-10-28
  • 2021-08-02
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
  • 2021-10-02
相关资源
相似解决方案