Windows UI Automation erkennt keine Tastensteuerelemente

Ich habe Probleme beim Identifizieren überWindows UI Automation die Schaltflächen, die sich innerhalb des @ befindInfobereic window (Klassenname: ToolbarWindow32):

Ich habe über das @ verifizieWindows UI Automation Tools, die im @ implementiert siWindows SDK dass diese "Icons" Controls vom Typ @ siControlType.Button Wenn ich jedoch versuche, den folgenden Code auszuführen, wird eine Nullreferenz-Ausnahme angezeigt, da die von mir verwendete Suchbedingung keine Kontrolle erhält.

Ich mache etwas falsch, oder vielleicht habe ich eine Einschränkung in @ gefundWindows UI Automation ?

Dies ist der Code, den ich mit WinAPI-Aufrufen gemischt habe, um die Aufgabe für die Helferbenutzer zu vereinfachen, die diese Methode möglicherweise bevorzugen.

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.

Ist das eine Lösung?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage