Información general acerca de las propiedades de UI Automation

Los proveedores de Microsoft Automatización de la interfaz de usuario exponen propiedades en elementos Automatización de la interfaz de usuario. Las propiedades permiten a las aplicaciones cliente recuperar información sobre los controles.

Automatización de la interfaz de usuario expone dos tipos diferentes de propiedades: propiedades de elemento de automatización y patrones de control adecuados. Las propiedades del elemento de automatización constan de un conjunto común de propiedades, como Name, AcceleratorKey y ClassName, expuestos por todos los elementos Automatización de la interfaz de usuario, independientemente del tipo de control. La mayoría de las propiedades del elemento de automatización son valores estáticos.

Las propiedades del patrón de control son las expuestas por un control que admite un patrón de control determinado. Cada patrón de control tiene un conjunto correspondiente de propiedades de patrón de control que el control debe exponer. Por ejemplo, un control que admite el patrón de control Grid expone las propiedades ColumnCount y RowCount. La mayoría de las propiedades de patrón de control son valores dinámicos.

En este tema se incluyen las siguientes secciones.

Identificadores de propiedad

Cada propiedad se identifica mediante un valor numérico PROPERTYID denominado identificador de propiedad (ID). Los proveedores y clientes usan los identificadores numéricos en llamadas de método como IRawElementProviderAdviseEvents::AdviseEventAdded e IUIAutomationElement::GetCachedPropertyValue para identificar las solicitudes de propiedad. Para obtener una descripción detallada de cada identificador de propiedad de Automatización de la interfaz de usuario, incluido el tipo de datos y el valor predeterminado de cada propiedad, consulte Identificadores de propiedad.

Valores de propiedad

Todas las propiedades son de solo lectura, aunque algunas se pueden cambiar mediante métodos que actúan en el control, como IDockProvider::SetDockPosition (provider) o IUIAutomationDockPattern::SetDockPosition (cliente).

Para obtener información sobre cómo recuperar valores de propiedad, vea Recuperar propiedades de Automatización de la interfaz de usuario Elements.

Propiedades y eventos

Estrechamente asociado a las propiedades de Automatización de la interfaz de usuario es el concepto de eventos modificados por propiedades. En el caso de las propiedades dinámicas, una aplicación cliente necesita una manera de saber que ha cambiado un valor de propiedad, de modo que pueda actualizar su memoria caché de información o reaccionar a la nueva información de alguna otra manera. Los clientes pueden registrarse para escuchar eventos modificados por propiedades en cualquier propiedad.

Los proveedores generan eventos cuando cambia algo en la interfaz de usuario. Por ejemplo, si una casilla está activada o desactivada, la implementación del proveedor del patrón de control Toggle genera un evento cambiado de propiedad. Los proveedores pueden generar eventos de forma selectiva, dependiendo de si hay clientes en escucha de eventos o en escucha de eventos específicos.

No todos los cambios de propiedades generan eventos; esto depende totalmente de la implementación del proveedor de Automatización de la interfaz de usuario del elemento. Por ejemplo, los proveedores de proxy estándar para los cuadros de lista no generan un evento de cambio de propiedad cuando cambia la propiedad Selection. En este caso, la aplicación debe escuchar el evento generado cuando la selección cambia (UIA_SelectionItem_ElementSelectedEventId).

Los clientes escuchan eventos suscribiéndolos, como se describe en Suscribirse a eventos de Automatización de la interfaz de usuario. En el caso de eventos modificados por propiedades en particular, los clientes deben implementar IUIAutomationPropertyChangedEventHandler y pasar la interfaz a IUIAutomation::AddPropertyChangedEventHandler o IUIAutomation::AddPropertyChangedEventHandlerNativeArray.

Referencia

GetCurrentPropertyValue

GetCurrentPropertyValueEx

GetCachedPropertyValue

GetCachedPropertyValueEx

Conceptual

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

Información general sobre tipos de control de UI Automation

Información general sobre eventos de UI Automation