Windows UI Automation no reconoce los controles de botón
Tengo problemas para intentar identificar a través deWindows UI Automation los controles de botón que están dentro delÁrea de notificación ventana (nombre de clase:ToolbarWindow32):
Verifiqué a través deWindows UI Automation herramientas desplegadas en elWindows SDK que esos "íconos" son controles de tipoControlType.Button
, sin embargo, cuando intento ejecutar el siguiente código, obtengo una excepción de referencia nula porque la condición de búsqueda que uso no tiene ningún control.
Estoy haciendo algo mal, o tal vez encontré algún tipo de limitación enWindows UI Automation ?
Este es el código, lo mezclé con las llamadas de WinAPI solo para facilitar la tarea a los usuarios auxiliares que tal vez prefieran usar esa metodología.
Dim tskBarClassName As String = "Shell_TrayWnd"
Dim tskBarHwnd As IntPtr = NativeMethods.FindWindow(tskBarClassName, Nothing)
Dim systrayBarClassName As String = "TrayNotifyWnd"
Dim systrayBarHwnd As IntPtr = NativeMethods.FindWindowEx(tskBarHwnd, IntPtr.Zero, systrayBarClassName, Nothing)
Dim ntfyBarClassName As String = "ToolbarWindow32"
Dim ntfyBarHwnd As IntPtr = NativeMethods.FindWindowEx(systrayBarHwnd, IntPtr.Zero, ntfyBarClassName, Nothing)
Dim window As AutomationElement = AutomationElement.FromHandle(ntfyBarHwnd)
Dim condition As New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Button)
Dim button As AutomationElement = window.FindFirst(TreeScope.Descendants, condition)
MsgBox(button.Current.Name) ' Here throws the null-reference exception.
¿Alguna solución para esto?