Recuperar propiedades de elementos de Automatización de la interfaz de usuario
Las propiedades de los objetos IUIAutomationElement contienen información sobre los elementos de la interfaz de usuario, normalmente los controles. Las propiedades de un elemento son genéricas; es decir, no es específico de un tipo de control. Las propiedades específicas del control de un elemento se exponen mediante sus interfaces de patrón de control.
Las propiedades de Microsoft Automatización de la interfaz de usuario son de solo lectura. Para establecer las propiedades de un control, debe utilizar los métodos del patrón de control adecuado. Por ejemplo, use IUIAutomationScrollPattern::Scroll para cambiar los valores de posición de una ventana de desplazamiento.
Para mejorar el rendimiento, los valores de propiedad de los controles y los patrones de control se pueden almacenar en caché cuando se recuperan los elementos. Para obtener más información, vea Almacenamiento en caché Automatización de la interfaz de usuario propiedades y patrones de control.
En este tema se incluyen las siguientes secciones.
- Identificadores de propiedad
- Condiciones de propiedad
- Recuperación de propiedades
- Valores de propiedad predeterminados
- Temas relacionados
Identificadores de propiedad
Los identificadores de propiedad se definen en Uiautomationclient.h. Se usan para especificar propiedades al suscribirse a eventos modificados por propiedades, recuperar valores de propiedad y construir condiciones de propiedad. Los identificadores de propiedad también identifican la propiedad que ha cambiado cuando se llama a IUIAutomationPropertyChangedEventHandler::HandlePropertyChangedEvent .
Para obtener una lista de Automatización de la interfaz de usuario identificadores de propiedad, consulte Identificadores de propiedad.
Condiciones de propiedad
Los identificadores de propiedad se usan para construir objetos IUIAutomationPropertyCondition que se usan para buscar elementos Automatización de la interfaz de usuario. Por ejemplo, es posible que quiera buscar un elemento que tenga un nombre determinado o todos los controles habilitados. Cada condición de propiedad especifica un identificador de propiedad y el valor que la propiedad debe coincidir.
Para más información, consulte los temas de referencia siguientes:
- IUIAutomation::CreatePropertyCondition
- IUIAutomation::CreatePropertyConditionEx
- IUIAutomationElement::FindFirst
- IUIAutomationElement::FindAll
Recuperación de propiedades
Algunas propiedades genéricas y todas las propiedades de patrón de control están disponibles como propiedades en la interfaz IUIAutomationElement o patrón de control y se pueden recuperar mediante un descriptor de acceso, como IUIAutomationElement::CurrentName o CachedDockPosition.
Además, cualquier propiedad actual o almacenada en caché (distinta de las propiedades del patrón de control) se puede recuperar mediante uno de los métodos siguientes:
Estos métodos ofrecen un rendimiento ligeramente mejor y acceso a toda la gama de propiedades. Sin embargo, los valores se devuelven en estructuras VARIANT , mientras que los descriptores de acceso de propiedad individuales convierten el valor en el tipo adecuado.
Valores de propiedad predeterminados
Si un proveedor de Automatización de la interfaz de usuario no implementa una propiedad, Automatización de la interfaz de usuario puede proporcionar un valor predeterminado. Por ejemplo, si el proveedor de un control no admite la propiedad identificada por UIA_HelpTextPropertyId, Automatización de la interfaz de usuario devuelve una cadena vacía. De forma similar, si el proveedor no admite la propiedad identificada por UIA_IsDockPatternAvailablePropertyId, Automatización de la interfaz de usuario devuelve FALSE.
La diferencia entre IUIAutomationElement::GetCurrentPropertyValue y GetCurrentPropertyValueEx (y entre pares similares de métodos) es que el método "Ex" puede especificar que no se va a devolver ningún valor predeterminado. En este caso, el valor devuelto es una constante única especial, lo que indica que la propiedad no se admite. Al recibir este valor, la aplicación puede proporcionar su propio valor o simplemente omitir la propiedad .
Temas relacionados