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); }
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); }