Dim GetChild As Func(Of AutomationElement, AutomationProperty, String, AutomationElement) = Function(u, p, s) u.FindFirst(TreeScope.Children, New PropertyCondition(p, s)) Dim GetChildren As Func(Of AutomationElement, AutomationProperty, String, AutomationElementCollection) = Function(u, p, s) u.FindAll(TreeScope.Children, New PropertyCondition(p, s)) Dim proc = Process.GetProcesses().FirstOrDefault(Function(x) x.MainWindowTitle = "設定") Dim uiElm = AutomationElement.FromHandle(proc.MainWindowHandle) Dim uiCoreWindow = GetChild(uiElm, AutomationElement.ClassNameProperty, "Windows.UI.Core.CoreWindow") Dim uiLandmarkTarget = GetChildren(uiCoreWindow, AutomationElement.ClassNameProperty, "LandmarkTarget")(1) Dim uiViewer = GetChild(uiLandmarkTarget, AutomationElement.AutomationIdProperty, "ItemsControlScrollViewer") Dim uiGroup = GetChild(uiViewer, AutomationElement.ClassNameProperty, "GroupItem") Dim uiButton = GetChild(uiGroup, AutomationElement.AutomationIdProperty, "SystemSettings_DefaultApps_Browser_Button") DirectCast(uiButton.GetCurrentPattern(ScrollItemPatternIdentifiers.Pattern), ScrollItemPattern).ScrollIntoView() DirectCast(uiButton.GetCurrentPattern(InvokePattern.Pattern), InvokePattern).Invoke()