Compartir vía


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

La notificación de eventos de automatización de la interfaz de usuario de Microsoft es una característica clave para las tecnologías de asistencia, entre las que se incluyen lectores de pantalla y lupas. Estos clientes de automatización de la interfaz de usuario, realizan un seguimiento de los eventos que los proveedores de automatización de la interfaz de usuario generan cuando sucede algo en la UI, y usan esa información para notificar a los usuarios finales.

La eficacias se mejora gracias a que las aplicaciones proveedoras son capaces de generar los eventos de manera selectiva (en función de si hay clientes suscritos a esos eventos) o de no generarlos en absoluto (si no hay clientes a la escucha de eventos).

Tipos de eventos

Los eventos de Automatización de la interfaz de usuario pueden clasificarse de la siguiente manera.

Evento Descripción
Cambio de propiedad Se genera cuando se produce un cambio en un patrón de control o elemento de la automatización de la interfaz de usuario. Por ejemplo, si un cliente necesita supervisar un control de casilla de una aplicación, se puede registrar para escuchar si se produce un evento de cambio de propiedad en la propiedad ToggleState . Cuando el control de casilla se activa o desactiva, el proveedor genera el evento y el cliente puede actuar según sea necesario.
Acción de elemento Se genera cuando se produce un cambio en la interfaz de usuario como resultado de la actividad del usuario final o de programación, por ejemplo, cuando se hace clic en un botón o se invoca mediante InvokePattern.
Cambio de estructura Se genera cuando cambia la estructura del árbol de automatización de la interfaz de usuario. La estructura cambia cuando se hacen visibles, ocultan o quitan elementos nuevos de la interfaz de usuario en el escritorio.
Cambio de escritorio global Se genera cuando se producen acciones de interés global para el cliente, por ejemplo, cuando el foco cambia de un elemento a otro o cuando se cierra una ventana.

Algunos eventos no implican necesariamente un cambio en el estado de la UI. Por ejemplo, si el usuario se desplaza presionando la tecla TAB hasta un campo de entrada de texto y después hace clic en un botón para actualizar el campo, se genera un evento TextChangedEvent aunque, en realidad, el usuario no modifique el texto. Al procesar un evento, puede ser necesario que la aplicación cliente compruebe si realmente se ha producido un cambio antes de realizar cualquier acción.

Los siguientes eventos se pueden generar incluso si no cambia el estado de la UI.

  • AutomationPropertyChangedEvent (en función de la propiedad que cambie)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Identificadores de eventos de automatización de la interfaz de usuario

Los eventos de automatización de la interfaz de usuario de Microsoft están definidos por los objetos AutomationEvent. La propiedad Id contiene un valor que identifica de forma única el tipo de evento.

En la tabla siguiente se indican los valores posibles de Id , junto con el tipo que se usa para los argumentos del evento. Observe que los identificadores usados por clientes y proveedores son campos de idéntico nombre y clases diferentes.

Identificador de cliente Identificador de proveedor Tipo de argumentos de evento
AutomationElement.AsyncContentLoadedEvent AutomationElementIdentifiers.AsyncContentLoadedEvent AsyncContentLoadedEventArgs
SelectionItemPattern.ElementAddedToSelectionEvent

SelectionItemPattern.ElementRemovedFromSelectionEvent

SelectionItemPattern.ElementSelectedEvent

SelectionPattern.InvalidatedEvent

InvokePattern.InvokedEvent

AutomationElement.LayoutInvalidatedEvent

AutomationElement.MenuClosedEvent

AutomationElement.MenuOpenedEvent

TextPattern.TextChangedEvent

TextPattern.TextSelectionChangedEvent

AutomationElement.ToolTipClosedEvent

AutomationElement.ToolTipOpenedEvent

WindowPattern.WindowOpenedEvent
SelectionItemPatternIdentifiers.ElementAddedToSelectionEvent

SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent

SelectionItemPatternIdentifiers.ElementSelectedEvent

SelectionPatternIdentifiers.InvalidatedEvent

InvokePatternIdentifiers.InvokedEvent

AutomationElementIdentifiers.LayoutInvalidatedEvent

AutomationElementIdentifiers.MenuClosedEvent

AutomationElementIdentifiers.MenuOpenedEvent

TextPatternIdentifiers.TextChangedEvent

TextPatternIdentifiers.TextSelectionChangedEvent

AutomationElementIdentifiers.ToolTipClosedEvent

AutomationElementIdentifiers.ToolTipOpenedEvent

WindowPatternIdentifiers.WindowOpenedEvent
AutomationEventArgs
AutomationElement.AutomationFocusChangedEvent AutomationElementIdentifiers.AutomationFocusChangedEvent AutomationFocusChangedEventArgs
AutomationElement.AutomationPropertyChangedEvent AutomationElementIdentifiers.AutomationPropertyChangedEvent AutomationPropertyChangedEventArgs
AutomationElement.StructureChangedEvent AutomationElementIdentifiers.StructureChangedEvent StructureChangedEventArgs
WindowPattern.WindowClosedEvent WindowPatternIdentifiers.WindowClosedEvent WindowClosedEventArgs

Argumentos de eventos de automatización de la interfaz de usuario

Las clases siguientes encapsulan los argumentos de eventos.

Clase Descripción
AsyncContentLoadedEventArgs Contiene información sobre la carga asincrónica de contenido, como el porcentaje de carga completada.
AutomationEventArgs Contiene información sobre un evento simple que no requiere datos adicionales.
AutomationFocusChangedEventArgs Contiene información sobre el foco de entrada, que pasa de un elemento a otro. Los eventos de este tipo los genera el sistema de automatización de la interfaz de usuario, no los proveedores.
AutomationPropertyChangedEventArgs Contiene información sobre un cambio en un valor de propiedad de un elemento o patrón de control.
StructureChangedEventArgs Contiene información sobre un cambio en el árbol de automatización de la interfaz de usuario.
WindowClosedEventArgs Contiene información sobre el cierre de una ventana.

Todas las clases de los argumentos de evento contienen un miembro EventId . Este identificador se encapsula en un AutomationEvent.

Los proveedores obtienen los objetos AutomationEvent , usados para identificar los eventos, a partir de los campos de AutomationElementIdentifiers y de las clases de identificadores de patrones de control como DockPatternIdentifiers. Las aplicaciones cliente obtienen los campos equivalentes a partir de campos de AutomationElement y de clases de patrones de control como DockPattern.

Para obtener una lista de identificadores de eventos, consulte UI Automation Events for Clients.

Consulte también