Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
- Suscribirse a eventos de automatización de la interfaz de usuario
- Información general de eventos de automatización de la interfaz de usuario de
- Introducción a las propiedades de Automatización de la interfaz de usuario
- Ejemplo de TrackFocus