Información general sobre 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.

Automatización de la interfaz de usuario de Microsoft es el marco nuevo de accesibilidad para Microsoft Windows, disponible en todos los sistemas operativos que admiten Windows Presentation Foundation (WPF).

La Automatización de la interfaz de usuario ofrece acceso mediante programación a la mayoría de los elementos de la interfaz de usuario (UI) del escritorio y permite productos de tecnología de asistencia como lectores de pantalla para ofrecer información sobre la interfaz de usuario a los usuarios finales y manipular la UI mediante otros medios distintos de la entrada estándar. La Automatización de la interfaz de usuario también permite que scripts de pruebas automatizadas interactúen con la UI.

Nota

La Automatización de la interfaz de usuario no permite la comunicación entre procesos iniciados por usuarios diferentes mediante el comando Ejecutar como.

Las aplicaciones cliente de la automatización de la interfaz de usuario se pueden escribir con la certeza de que funcionarán en varios marcos de trabajo. El núcleo de la Automatización de la interfaz de usuario enmascara las diferencias entre los marcos que subyacen a distintas partes de la UI. Por ejemplo, la propiedad Content de un botón WPF, la propiedad Caption de un botón Win32 y la propiedad ALT de una imagen HTML se asignan a una propiedad única, Name, en la vista Automatización de la interfaz de usuario.

La Automatización de la interfaz de usuario proporciona una funcionalidad completa en los sistemas operativos Windows compatibles que ejecutan .NET Framework (consulte los requisitos del sistema de .NET Framework o versiones de .NET Core a partir de .NET Core 3.0.

Los proveedores de la Automatización de la interfaz de usuario ofrecen algo de compatibilidad con las aplicaciones cliente de Microsoft Active Accessibility a través de un servicio de puente integrado.

Proveedores y clientes

La Automatización de la interfaz de usuario tiene cuatro componentes principales, como se muestra en la tabla siguiente.

Componente Descripción
API del proveedor (UIAutomationProvider.dll and UIAutomationTypes.dll) Conjunto de definiciones de interfaz que se implementan por proveedores de la Automatización de la interfaz de usuario, que ofrecen información sobre los elementos de la UI y que responden a la entrada mediante programación.
API de cliente (UIAutomationClient.dll y UIAutomationTypes.dll) Conjunto de tipos de código administrado que permite a las aplicaciones cliente de la Automatización de la interfaz de usuario obtener información sobre la UI y enviar la entrada a controles.
UiAutomationCore.dll El código subyacente (a veces denominado el núcleo de la Automatización de la interfaz de usuario ) que controla la comunicación entre los proveedores y los clientes.
UIAutomationClientsideProviders.dll Un conjunto de proveedores de automatización de la interfaz de usuario para controles heredados estándar. (Los controles WPF tienen compatibilidad nativa con la Automatización de la interfaz de usuario). Esta compatibilidad está disponible automáticamente para las aplicaciones cliente.

Desde la perspectiva del desarrollador de software, hay dos formas de usar la Automatización de la interfaz de usuario: crear compatibilidad con controles personalizados (mediante la API del proveedor) y crear aplicaciones que usan el núcleo de la Automatización de la interfaz de usuario para comunicarse con elementos de la UI (mediante la API del cliente). En función de su enfoque, debe hacer referencia a diferentes partes de la documentación. Puede obtener más información sobre los conceptos y adquirir conocimientos prácticos en las secciones siguientes.

Sección Materia Público
Fundamentos de la Automatización de la interfaz de usuario (esta sección) Amplias introducciones a los conceptos. Todos.
Proveedores de UI Automation para código administrado Información general y temas de procedimientos que le ayudarán a usar la API del proveedor. Desarrolladores de controles.
Clientes de UI Automation para código administrado Información general y temas de procedimientos que le ayudarán a usar la API del cliente. Desarrolladores de aplicaciones de cliente.
Patrones de control de UI Automation Información sobre cómo sedeben implementar los patrones de control por los proveedores y qué funcionalidad está disponible para los clientes. Todos.
Modelo de texto de UI Automation Información sobre cómo sedeben implementar el patrón de control Text por los proveedores y qué funcionalidad está disponible para los clientes. Todos.
Tipos de control de UI Automation Información sobre las propiedades y los patrones de control admitidos por diferentes tipos de control. Todos.

En la tabla siguiente, se muestran espacios de nombres de la Automatización de la interfaz de usuario, archivos DLL que los contienen y el público que los usa.

Espacio de nombres DLL a las que se hace referencia Público
System.Windows.Automation UIAutomationClientUIAutomationTypes Desarrolladores de cliente de la Automatización de la interfaz de usuario; se utiliza para buscar objetos AutomationElement, registrarse para eventos de la Automatización de la interfaz de usuario y trabajar con patrones de control de la Automatización de la interfaz de usuario.
System.Windows.Automation.Provider UIAutomationProviderUIAutomationTypes Desarrolladores de los proveedores de la Automatización de la interfaz de usuario para marcos distintos de WPF.
System.Windows.Automation.Text UIAutomationClientUIAutomationTypes Desarrolladores de proveedores de la Automatización de la interfaz de usuario para marcos distintos de WPF; se usan para implementar el patrón de control TextPattern.
System.Windows.Automation.Peers PresentationFramework Desarrolladores de los proveedores de la Automatización de la interfaz de usuario para WPF.

Modelo de la automatización de la interfaz de usuario

La Automatización de la interfaz de usuario expone cada parte de la UI a las aplicaciones cliente como un AutomationElement. Los elementos se encuentran en una estructura de árbol, con el escritorio como el elemento raíz. Los clientes pueden filtrar la vista sin formato del árbol como una vista de control o una vista de contenido. Las aplicaciones también pueden crear vistas personalizadas.

Los objetos AutomationElement exponen propiedades comunes de los elementos de la UI que representan. Una de estas propiedades es el tipo de control, que define su funcionalidad y aspecto básico como una única entidad reconocible: por ejemplo, un botón o una casilla.

Además, los elementos exponen los patrones de control que ofrecen propiedades específicas para sus tipos de control. Los patrones de control también exponen métodos que permiten a los clientes obtener más información sobre el elemento y ofrecer entrada.

Nota

No hay una correspondencia de uno a uno entre los tipos de control y los patrones de control. Un patrón de control puede ser compatible con varios tipos de control y un control puede admitir varios patrones de control, cada uno de los cuales expone diferentes aspectos de su comportamiento. Por ejemplo, un cuadro combinado tiene al menos dos patrones de control: uno que representa su capacidad para expandir y contraer, y otro que representa el mecanismo de selección. Para obtener información específica, vea UI Automation Control Types.

La Automatización de la interfaz de usuario también ofrece información para las aplicaciones cliente a través de eventos. A diferencia de WinEvents, los eventos de la Automatización de la interfaz de usuario no se basan en un mecanismo de difusión. Los clientes de la Automatización de la interfaz de usuario se registran para recibir notificaciones de evento específicas y pueden solicitar que se pase información de patrón de control y propiedades de la Automatización de la interfaz de usuario específicas a sus controladores de eventos. Además, un evento de la Automatización de la interfaz de usuario contiene una referencia al elemento que lo generó. Los proveedores pueden mejorar el rendimiento generando eventos de forma selectiva, dependiendo de si los clientes están escuchando.

Consulte también