Información general sobre UI Automation

Automatización de la interfaz de usuario de Microsoft es un marco de accesibilidad para Windows. Proporciona acceso mediante programación a la mayoría de los elementos de la interfaz de usuario del escritorio. Permite que los productos de tecnología de asistencia, como los lectores de pantalla, proporcionen información sobre la interfaz de usuario a los usuarios finales y manipulen la interfaz de usuario por 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.

La automatización de la interfaz de usuario estaba disponible por primera vez en Windows XP como parte de Microsoft .NET Framework. Aunque en ese momento también se publicó una API de C++ no administrada, la utilidad de las funciones de cliente se limitaba debido a problemas de interoperabilidad. Para Windows 7, la API se ha reescrito en el modelo de objetos componentes (COM).

Nota:

Aunque las funciones de biblioteca introducidas en la versión anterior de automatización de la interfaz de usuario siguen documentadas, no deben usarse en las nuevas aplicaciones.

Las aplicaciones cliente de automatización de la interfaz de usuario se pueden escribir con la garantía de que funcionarán en varios marcos de control de Microsoft Windows. El núcleo de automatización de la interfaz de usuario enmascara las diferencias en los marcos que subyacen a varias partes de la interfaz de usuario. Por ejemplo, la propiedad Content de un botón de Windows Presentation Foundation (WPF), la propiedad Caption de un botón Microsoft Win32 y la propiedad ALT de una imagen HTML se asignan a una sola propiedad, Name, en la vista Automatización de la interfaz de usuario.

La automatización de la interfaz de usuario proporciona una funcionalidad completa en Windows XP, Windows Server 2003 y sistemas operativos posteriores.

Los proveedores de automatización de la interfaz de usuario son componentes que implementan compatibilidad con automatización de la interfaz de usuario en controles y ofrecen compatibilidad con aplicaciones cliente de accesibilidad activa de Microsoft, a través de un servicio de puente integrado.

Nota

La automatización de la interfaz de usuario no habilita la comunicación entre procesos iniciados por distintos usuarios a través del comando Ejecutar como .

En este tema se incluyen las siguientes secciones.

Componentes de automatización de la interfaz de usuario

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

Componente Descripción
API de proveedor Un conjunto de interfaces COM implementadas por proveedores de automatización de la interfaz de usuario. Los proveedores de automatización de la interfaz de usuario son objetos que proporcionan información sobre los elementos de la interfaz de usuario y responden a la entrada mediante programación.
API de cliente Un conjunto de interfaces COM que permiten a las aplicaciones cliente obtener información sobre la interfaz de usuario y enviar entradas a los controles. Nota: Las funciones descritas en Funciones de patrón de control en desuso y Funciones de nodo en desuso están en desuso. En su lugar, las aplicaciones cliente deben usar las interfaces COM de automatización de la interfaz de usuario descritas en Interfaces de elemento de automatización de la interfaz de usuario para clientes.
UIAutomationCore.dll La biblioteca en tiempo de ejecución, a veces denominada núcleo de automatización de la interfaz de usuario, que controla la comunicación entre proveedores y clientes.
Oleacc.dll La biblioteca en tiempo de ejecución para la accesibilidad activa de Microsoft y los objetos proxy. La biblioteca también proporciona objetos proxy usados por microsoft Microsoft Active Accessibility to UI Automation Proxy para admitir controles Win32.

Hay dos maneras de usar automatización de la interfaz de usuario: para crear compatibilidad con controles personalizados mediante la API del proveedor y para crear aplicaciones cliente que usan el núcleo de Automatización de la interfaz de usuario para comunicarse y recuperar información sobre los elementos de la interfaz de usuario. En función de su enfoque, debe hacer referencia a diferentes partes de la documentación. Si necesita crear compatibilidad con controles personalizados, consulte la Guía del programador del proveedor de automatización de la interfaz de usuario. Si necesita comunicarse con o recuperar información sobre los elementos de la interfaz de usuario, consulte guía del programador del cliente de Automatización de la interfaz de usuario.

Archivos de encabezado de automatización de la interfaz de usuario

La API de automatización de la interfaz de usuario se define en varios archivos de encabezado de C/C++ diferentes que se incluyen con el Kit de desarrollo de software (SDK) de Windows. Los archivos de encabezado de automatización de la interfaz de usuario se describen en la tabla siguiente:

Archivo de encabezado Descripción
UIAutomationClient.h Define las interfaces y los elementos de programación relacionados utilizados por los clientes de automatización de la interfaz de usuario.
UIAutomationCore.h Define las interfaces y los elementos de programación relacionados que usan los proveedores de automatización de la interfaz de usuario.
UIAutomationCoreApi.h Define constantes generales, GUID, tipos de datos y estructuras que usan los clientes y proveedores de automatización de la interfaz de usuario. También contiene definiciones para las funciones de patrón de control y nodo en desuso.
UIAutomation.h Incluye todos los demás archivos de encabezado de automatización de la interfaz de usuario. Dado que la mayoría de las aplicaciones de automatización de la interfaz de usuario requieren elementos de todos los archivos de encabezado de automatización de la interfaz de usuario, es mejor incluir UIAutomation.h en los proyectos de aplicación de automatización de la interfaz de usuario en lugar de incluir cada archivo individualmente.

Si va a desarrollar una aplicación que usa la API de automatización de la interfaz de usuario, debe incluir UIAutomation.h en el proyecto. Si la aplicación admite la accesibilidad activa de Microsoft, incluya el archivo de encabezado Oleacc.h. Las aplicaciones de automatización de la interfaz de usuario que usan GUID también requieren el archivo de encabezado Initguid.h. Si es necesario, se debe incluir Initguid.h antes de UIAutomation.h.

Modelo de la automatización de la interfaz de usuario

La automatización de la interfaz de usuario expone todos los elementos de la interfaz de usuario a las aplicaciones cliente como un objeto representado por la interfaz IUIAutomationElement . 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. Estas vistas estándar de la estructura se pueden ver fácilmente mediante la aplicación Inspect que se incluye con Windows SDK. Las aplicaciones también pueden crear vistas personalizadas.

Un elemento de Automatización de la interfaz de usuario expone las propiedades del control o elemento de la interfaz de usuario que representa. Una de estas propiedades es el tipo de control, que define la apariencia básica y la funcionalidad del control o elemento de la interfaz de usuario como una sola entidad reconocible, por ejemplo, un botón o una casilla. Para obtener más información sobre los tipos de control, consulte Ui Automation Control Types Overview.

Además, un elemento de automatización de la interfaz de usuario expone uno o varios patrones de control. Un patrón de control proporciona un conjunto de propiedades que son específicas de un tipo de control determinado. Un patrón de control también expone métodos que permiten a las aplicaciones cliente obtener más información sobre el elemento y proporcionar entrada al elemento. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.

Nota

No hay correspondencia 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. Sin embargo, un control solo puede mostrar un único tipo de control.

La automatización de la interfaz de usuario proporciona información a 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 automatización de la interfaz de usuario se registran para notificaciones de eventos específicas y pueden solicitar que se pase información de patrones de control y propiedades 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. Para más información sobre eventos, vea UI Automation Events Overview.

Conceptual

Información general sobre tipos de control de UI Automation

Información general acerca de los patrones de control de UI Automation

Información general sobre eventos de UI Automation