Compartir a través de


Implementación del proveedor de UI Automation en el cliente

Nota:

Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.

Hay varios marcos de interfaz de usuario (UI) diferentes en uso en sistemas operativos Microsoft, incluidos Win32, Windows Forms y Windows Presentation Foundation (WPF). Automatización de la interfaz de usuario de Microsoft expone información sobre los elementos de la interfaz de usuario a los clientes. Sin embargo, la automatización de la interfaz de usuario no tiene conocimiento de los distintos tipos de controles que existen en estos marcos y las técnicas necesarias para extraer información de ellos. En su lugar, deja esta tarea en objetos denominados proveedores. Un proveedor extrae información de un control específico y aplica esa información a la automatización de la interfaz de usuario, que luego la presenta al cliente de forma coherente.

Los proveedores pueden existir en el lado servidor o en el lado cliente. El propio control implementa un proveedor de lado servidor. Los elementos de WPF implementan proveedores, como pueden hacerlo los controles de terceros escritos teniendo en cuenta Automatización de la interfaz de usuario.

Sin embargo, los controles más antiguos, como los de Win32 y Windows Forms, no admiten directamente la automatización de la interfaz de usuario. En su lugar, se sirven estos controles por los proveedores que existen en el proceso del cliente y obtienen información sobre los controles mediante la comunicación entre procesos; por ejemplo, al supervisar mensajes de ventana hacia y desde los controles. Estos proveedores del lado cliente a veces se denominan servidores proxy.

Windows Vista proporciona proveedores para controles estándar Win32 y Windows Forms. Además, un proveedor de respaldo proporciona compatibilidad parcial con Automación de Interfaz de Usuario a cualquier control que no cuente con el servicio de otro proveedor o proxy en el lado del servidor, pero que tenga una implementación de Microsoft Active Accessibility. Todos estos proveedores se cargan y están disponibles automáticamente para las aplicaciones cliente.

Para obtener más información sobre la compatibilidad con los controles de Win32 y Windows Forms, consulte Compatibilidad de automatización de la interfaz de usuario para controles estándar.

Las aplicaciones también pueden registrar otros proveedores del lado cliente.

Distribución de proveedores del cliente

Ui Automation espera encontrar proveedores del lado cliente en un ensamblado de código administrado. El espacio de nombres de este ensamblado debe tener el mismo nombre que el ensamblado. Por ejemplo, un ensamblado denominado ContosoProxies.dll contendrá el espacio de nombres ContosoProxies. Dentro del espacio de nombres, cree una clase UIAutomationClientSideProviders. En la implementación del campo estático ClientSideProviderDescriptionTable, cree una matriz de estructuras de ClientSideProviderDescription para describir a los proveedores.

Registro y configuración de proveedores de Client-Side

Los proveedores del lado cliente de una biblioteca de vínculos dinámicos (DLL) se cargan mediante una llamada a RegisterClientSideProviderAssembly. Una aplicación cliente no requiere ninguna otra acción para usar los proveedores.

Los proveedores implementados en el propio código del cliente se registran mediante RegisterClientSideProviders. Este método toma como argumento una matriz de ClientSideProviderDescription estructuras, cada una de las cuales especifica las siguientes propiedades:

  • Una función de devolución de llamada que crea el objeto de proveedor.

  • Nombre de clase de los controles que proporcionará el proveedor.

  • El nombre de la imagen de la aplicación (normalmente el nombre completo del archivo ejecutable) que suministrará el proveedor.

  • Marcas que rigen cómo se compara el nombre de clase con las clases de ventana que se encuentran en la aplicación de destino.

Los dos últimos parámetros son opcionales. El cliente puede especificar el nombre de imagen de la aplicación de destino cuando quiera usar diferentes proveedores para diferentes aplicaciones. Por ejemplo, el cliente puede usar un proveedor para un control de vista de lista de Win32 de una aplicación conocida que admita el patrón de vista múltiple y otro para un control similar de otra aplicación conocida que no lo hace.

Consulte también