Información general sobre proveedores de UI Automation

Nota

Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para ver la información más reciente acerca de la automatización de la interfaz de usuario, consulte Windows Automation API: automatización de la interfaz de usuario.

Los proveedores de automatización de la interfaz de usuario permiten a los controles comunicarse con aplicaciones de cliente de automatización de la interfaz de usuario. En general, cada control u otro elemento distinto de una interfaz de usuario (UI) está representado por un proveedor. El proveedor expone información sobre el elemento y, opcionalmente, implementa patrones de control que permiten a la aplicación cliente interactuar con el control.

Las aplicaciones cliente no suelen tener que trabajar directamente con proveedores. La mayoría de los controles estándar de las aplicaciones que usan los marcos win32, Windows Forms o Windows Presentation Foundation (WPF) se exponen automáticamente al sistema de automatización de la interfaz de usuario. Las aplicaciones que implementan controles personalizados también pueden implementar proveedores de automatización de la interfaz de usuario para esos controles y las aplicaciones cliente no tienen que realizar ningún paso especial para obtener acceso a ellos.

En este tema se ofrece información general sobre la manera en que los desarrolladores de controles implementan proveedores de la interfaz de usuario, especialmente para controles en las ventanas de Windows Forms y Win32.

Tipos de proveedores

Los proveedores de automatización de la interfaz de usuario se dividen en dos categorías: proveedores del lado cliente y proveedores del lado servidor.

Proveedores del lado cliente

Los proveedores de cliente se implementan por los clientes de automatización de la interfaz de usuario para comunicarse con una aplicación que no admite, o no admite por completo, interfaz de usuario. Los proveedores del lado cliente suelen comunicarse con el servidor a través del límite del proceso enviando y recibiendo mensajes de Windows.

Dado que los proveedores de automatización de la interfaz de usuario para los controles de las aplicaciones Win32, Windows Forms o WPF se ofrecen como parte del sistema operativo, las aplicaciones cliente rara vez tienen que implementar sus propios proveedores y en esta información general no se tratan más.

Proveedores del lado servidor

Los proveedores del lado servidor se implementan mediante controles personalizados o aplicaciones que se basan en un marco de trabajo de la interfaz de usuario distinto de Win32, Windows Forms o WPF.

Los proveedores del lado servidor se comunican con aplicaciones cliente a través del límite de proceso al exponer interfaces al sistema principal de automatización de la interfaz de usuario, que a su vez atiende solicitudes de los clientes.

Conceptos del proveedor de la automatización de la interfaz de usuario

En esta sección se ofrecen breves explicaciones de algunos de los conceptos clave que debe entender para implementar proveedores de automatización de la interfaz de usuario.

Elementos

Los elementos de automatización de la interfaz de usuario son partes de la interfaz de usuario que son visibles para los clientes de la automatización de la interfaz de usuario. Entre los ejemplos se incluyen ventanas de aplicación, paneles, botones, información sobre herramientas, cuadros de lista y elementos de lista.

Elementos de automatización de la interfaz de usuario se exponen a los clientes como un árbol de automatización de la interfaz de usuario. La automatización de la interfaz de usuario construye el árbol navegando de un elemento a otro. Los proveedores habilitan la navegación para cada elemento y cada uno de ellos puede señalar a un elemento primario, elementos del mismo nivel y elementos secundarios.

Para más información sobre la vista del cliente del árbol automatización de la interfaz de usuario, vea UI Automation Tree Overview.

Vistas

Un cliente puede ver el árbol de automatización de la interfaz de usuario en tres vistas principales, como se muestra en la tabla siguiente.

Ver Descripción
Vista sin formato Contiene todos los elementos.
Vista de control Contiene elementos que son controles.
Vista de contenido Contiene elementos que tienen contenido.

Para más información sobre vistas del cliente del árbol automatización de la interfaz de usuario, vea UI Automation Tree Overview.

Es responsabilidad de la implementación del proveedor definir un elemento como un elemento de contenido o un elemento de control. Los elementos de control pueden o no ser elementos de contenido, pero todos los elementos de contenido son elementos de control.

Marcos de trabajo

Un marco de trabajo es un componente que administra controles secundarios, pruebas de aciertos y representación en un área de la pantalla. Por ejemplo, una ventana de Win32, que a menudo se conoce como HWND, puede actuar como un marco de trabajo que contiene varios elementos de automatización de la interfaz de usuario como una barra de menús, una barra de estado y botones.

Los controles de contenedor de Win32 como cuadros de lista y vistas de árbol se consideran marcos de trabajo, porque contienen su propio código para representar elementos secundarios y realizar pruebas de aciertos en ellos. Por el contrario, un cuadro de lista de WPF no es un marco de trabajo, porque la representación y las pruebas de aciertos se controlan mediante la ventana que lo contiene.

La interfaz de usuario de una aplicación se puede componer de diferentes marcos de trabajo. Por ejemplo, una ventana de aplicación HWND podría incluir el HTML dinámico (DHTML) que a su vez contiene un componente como un cuadro combinado en un HWND.

Fragments

Un fragmento es un subárbol completo de elementos de un marco de trabajo determinado. El elemento del nodo raíz del subárbol se denomina raíz del fragmento. Una raíz de fragmento no tiene un elemento primario, pero se hospeda dentro de algún otro marco de trabajo, normalmente una ventana de Win32 (HWND).

Hosts

El nodo raíz de cada fragmento se debe hospedar en un elemento, normalmente una ventana de Win32 (HWND). La excepción es el escritorio, que no se hospeda en ningún otro elemento. El host de un control personalizado es el HWND del propio control, no la ventana de la aplicación o cualquier otra ventana que pueda contener grupos de controles de nivel superior.

El host de un fragmento desempeña un papel importante en el suministro de servicios de automatización de la interfaz de usuario. Permite la navegación a la raíz del fragmento y ofrece algunas propiedades predeterminadas para que el proveedor personalizado no tenga que implementarlas.

Consulte también