Пример #1
0
        /// <summary>
        /// 全局搜索桌面UI元素
        /// </summary>
        /// <param name="names"></param>
        /// <returns></returns>
        public static List <AutomationElement> FindGlobalElementByName(string names)
        {
            var list = new List <AutomationElement>();

            BaseWin32Api.EnumWindows((hwnd, l) =>
            {
                //if ((list?.Count ?? 0) > 0)
                //    return false;
                //var rootUI = Utility.GetAutomationElementFromHandle(hwnd);
                //if ((rootUI?.Current.Name ?? "").Contains("思迅"))
                //{

                //}
                int i = BaseWin32Api.EnumChildWindows(hwnd, (h, l2) =>
                {
                    var uiElement = Utility.FindAutoElementByPath(h, new string[] { names });
                    if (uiElement != null)
                    {
                        System.Console.WriteLine(hwnd.ToString() + "id->" + uiElement.Current.AutomationId);
                        //TextHelper.Write($"json->{JsonConvert.SerializeObject(uiElement.Current)}");
                        list.Add(uiElement);
                        return(false);
                    }
                    System.Console.WriteLine("true");
                    return(true);
                }, 0);

                return(true);
            }, 0);
            return(list);
        }