Compartir a través de


Implementación del proveedor de automatización de la interfaz de usuario de Client-Side

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 del lado servidor. Los elementos de WPF implementan proveedores, como los controles de terceros escritos con automatización de la interfaz de usuario en mente.

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. Estos controles se sirven en su lugar por proveedores que existen en el proceso de cliente y obtienen información sobre los controles mediante la comunicación entre procesos; por ejemplo, mediante la supervisión de mensajes de Windows 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 reserva proporciona compatibilidad parcial con la automatización de la interfaz de usuario a cualquier control que no sea servido por otro proveedor o proxy del lado servidor, pero que tenga una implementación de accesibilidad activa de Microsoft. 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 de Client-Side

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. En el espacio de nombres, cree una UIAutomationClientSideProviders clase . En la implementación del campo estático ClientSideProviderDescriptionTable , cree una matriz de ClientSideProviderDescription estructuras que describen 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 llamando 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:

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

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

  • El nombre de la imagen de la aplicación (normalmente el nombre completo del archivo ejecutable) que servirá 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 podría usar un proveedor para un control de vista de lista Win32 en una aplicación conocida que admita el patrón De vista múltiple y otro para un control similar en otra aplicación conocida que no lo haga.

Consulte también