Пример #1
0
        public List <Menu> GetAllSubMenus()
        {
            List <Menu> subMenus = new List <Menu>();

            var menuItemsCount = Win32Helpers.GetMenuItemCount(Handle);

            if (Text.Contains("File"))
            {
                LButtonMouseClick();
            }

            for (int i = 0; subMenus.Count != menuItemsCount; i++)
            {
                var subMenuHandler = Win32Helpers.GetMenuItemID(Handle, i);

                var menuItem = new Menu(Handle, subMenuHandler, mainWindowHandle: MainWindowHandle);

                if (menuItem.Text.Contains("Paste"))
                {
                    menuItem.LButtonMouseClick();
                }

                if (menuItem.Handle != IntPtr.Zero)
                {
                    subMenus.Add(menuItem);
                }
            }

            return(subMenus);
        }
Пример #2
0
        public List <Menu> FindAllMenuItems()
        {
            List <Menu> subMenus = new List <Menu>();

            int menuItemCount = Win32Helpers.GetMenuItemCount(Handle);

            for (int i = 0; i < 5; i++)
            {
                var subMenuHandler = Win32Helpers.GetSubMenu(Handle, i);
                subMenus.Add(new Menu(Handle, subMenuHandler, MainWindowHandle));
            }

            var lastHandler = IntPtr.Zero;

            for (int i = 0; lastHandler != IntPtr.Zero; i++)
            {
                var subMenuHandler = Win32Helpers.GetSubMenu(Handle, i);
                var menuItem       = new Menu(Handle, subMenuHandler, MainWindowHandle);
                lastHandler = menuItem.Handle;
                if (lastHandler != IntPtr.Zero)
                {
                    subMenus.Add(menuItem);
                }
            }

            foreach (var subMenu in subMenus.ToList())
            {
                subMenus.AddRange(subMenu.GetAllSubMenus());
            }

            return(subMenus);
        }