Compartir a través de


Eventos de automatización de la interfaz de usuario para clientes

Nota:

Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.

En este tema se describe cómo los clientes de automatización de la interfaz de usuario usan los eventos de Automatización de la interfaz de usuario de Microsoft.

La automatización de la interfaz de usuario permite a los clientes suscribirse a eventos de interés. Esta funcionalidad mejora el rendimiento al eliminar la necesidad de sondear continuamente todos los elementos de la interfaz de usuario del sistema para ver si alguna información, estructura o estado ha cambiado.

La eficiencia también mejora gracias a la capacidad de escuchar para eventos solo dentro de un ámbito definido. Por ejemplo, un cliente puede escuchar eventos de cambio de foco en todos los elementos de automatización de la interfaz de usuario del árbol, o solo en un elemento y sus descendientes.

Nota:

No suponga que un proveedor de Automatización de la interfaz de usuario de Microsoft genera todos los eventos posibles. Por ejemplo, no todos los cambios de propiedad hacen que los proveedores de proxy estándar generen eventos para los controles Windows Forms y Win32.

Para obtener una vista más amplia de los eventos de automatización de la interfaz de usuario, consulte Información general sobre eventos de automatización de la interfaz de usuario.

Suscribirse a eventos

Las aplicaciones cliente se suscriben a eventos de un tipo determinado mediante el registro de un controlador de eventos mediante uno de los métodos siguientes.

Método Tipo de evento Tipo de argumentos de evento Tipo de delegado
AddAutomationFocusChangedEventHandler Cambio de foco AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Cambio de propiedad AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Cambio de estructura StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Todos los demás eventos, identificados por AutomationEvent AutomationEventArgs o WindowClosedEventArgs AutomationEventHandler

Antes de llamar al método , debe crear un método delegado para controlar el evento. Si lo prefiere, puede controlar diferentes tipos de eventos en un único método y pasar este método en varias llamadas a uno de los métodos de la tabla. Por ejemplo, se puede configurar un solo AutomationEventHandler para gestionar varios eventos de forma diferente según el EventId.

Nota:

Para procesar eventos cerrados por ventanas, convierta el tipo de argumento que se pasa al controlador de eventos como WindowClosedEventArgs. Dado que el elemento de Automatización de la interfaz de usuario de Microsoft para la ventana ya no es válido, no puede usar el sender parámetro para recuperar información; en su lugar, use GetRuntimeId .

Precaución

Si la aplicación puede recibir eventos de su propia interfaz de usuario, no use el subproceso de interfaz de usuario de la aplicación para suscribirse a eventos o cancelar la suscripción. Si lo hace, podría provocar un comportamiento imprevisible. Para obtener más información, consulte Problemas de subprocesos de automatización de la interfaz de usuario.

Al apagar el equipo, o si los eventos UI Automation ya no son de interés para la aplicación, los clientes de UI Automation deben llamar a uno de los métodos siguientes.

Método Descripción
RemoveAutomationEventHandler Anula el registro de un controlador de eventos registrado mediante AddAutomationEventHandler.
RemoveAutomationFocusChangedEventHandler Anula el registro de un controlador de eventos registrado mediante AddAutomationFocusChangedEventHandler.
RemoveAutomationPropertyChangedEventHandler Anula el registro de un controlador de eventos registrado mediante AddAutomationPropertyChangedEventHandler.
RemoveAllEventHandlers Anula el registro de todos los controladores de eventos registrados.

Para obtener código de ejemplo, consulte Suscribirse a eventos de automatización de la interfaz de usuario.

Consulte también