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

            //2、获得一个子窗口(这通常是一个顶层窗口,当前活动的窗口)
            IntPtr winPtr = BaseWin32Api.GetWindow(desktopPtr, BaseWin32Api.GetWindowCmd.GW_CHILD);

            //3、循环取得桌面下的所有子窗口
            while (winPtr != IntPtr.Zero)
            {
                //4、继续获取下一个子窗口
                winPtr = BaseWin32Api.GetWindow(winPtr, BaseWin32Api.GetWindowCmd.GW_HWNDNEXT);

                var rootElement = Utility.GetAutomationElementFromHandle(winPtr);

                var uiElement = Utility.FindAutoElementListByPath(winPtr, null);
                if (uiElement != null)
                {
                    foreach (var ui in uiElement)
                    {
                        TextHelper.Write("查找内容===>" + ui.Current.Name + "---rootElement->" + rootElement.Current.Name);
                        if (ui.Current.Name.Contains(names))
                        {
                            list.Add(ui);
                        }
                    }
                }

                TextHelper.Write("查找内容===>总共查到" + (uiElement?.Count ?? 0) + "个子元素 ---rootElement->" + rootElement?.Current.Name ?? "");
            }
            return(list);
        }
Пример #2
0
        public static void GetList()
        {
            var    list   = new List <IntPtr>();
            IntPtr winPtr = BaseWin32Api.GetDesktopWindow();

            var list2 = EnumChildWindows(winPtr, "51.50");

            ////2、获得一个子窗口(这通常是一个顶层窗口,当前活动的窗口)
            //IntPtr winPtr = BaseWin32Api.GetWindow(desktopPtr, BaseWin32Api.GetWindowCmd.GW_CHILD);

            //3、循环取得桌面下的所有子窗口
            while (winPtr != IntPtr.Zero)
            {
                //4、继续获取下一个子窗口
                winPtr = BaseWin32Api.GetWindow(winPtr, BaseWin32Api.GetWindowCmd.GW_HWNDNEXT);

                var tool = Utility.GetAutomationElementFromHandle(winPtr);
                if (tool == null)
                {
                    continue;
                }

                if (tool != null)
                {
                    TextHelper.Write("==========" + tool.Current.Name + "-" + tool.Current.LocalizedControlType);
                    System.Console.WriteLine(tool.Current.Name + "-" + tool.Current.LocalizedControlType);
                }

                if (!tool.Current.Name.Contains("思迅天店"))
                {
                    continue;
                }


                var toolElement = FindWindowEx(winPtr, "909.90", true);

                //var uiElement = Utility.FindAutoElementByPath(winPtr, new string[] { "2019108.00" });
                //if (uiElement != null)
                //{
                //    System.Console.WriteLine("找到金额" + uiElement.Current.Name);
                //    TextHelper.Write("=====找到金额=====" + uiElement.Current.Name);
                //}
            }

            System.Console.WriteLine("便利结束");
        }