public virtual UIItemCollection ItemsWithin(Rect bounds, ActionListener actionListener) { var collection = new UIItemCollection(); List <AutomationElement> descendants = Finder.Descendants(AutomationSearchCondition.All); foreach (AutomationElement automationElement in descendants) { if (!bounds.Contains(automationElement.Current.BoundingRectangle)) { continue; } var factory = new DictionaryMappedItemFactory(); collection.Add(factory.Create(automationElement, actionListener)); } return(collection); }
public CashlinxDesktopLoader(string execFullPath) { if (string.IsNullOrEmpty(execFullPath)) { return; } //try //{ this.desktopApp = Application.Launch(execFullPath); this.newDesktopWindow = this.desktopApp.GetWindow("Cashlinx Desktop", InitializeOption.NoCache); this.initialized = true; this.factory = new DictionaryMappedItemFactory(); //} //catch(Exception eX) //{ //this.initialized = false; //throw new ApplicationException("CashlinxDesktopLoader ctor threw exception:" + eX.Message, eX); // this.initialized = true; //} }
public virtual IUIItem Get(ContainerItemFactory containerItemFactory, SearchCriteria searchCriteria, ActionListener actionListener) { WhiteLogger.Instance.DebugFormat("Finding item based on criteria: ({0}) on ({1})", searchCriteria, initializeOption.Identifier); Point location = windowItemsMap.GetItemLocation(searchCriteria); if (location.Equals(RectX.UnlikelyWindowPosition)) { WhiteLogger.Instance.Debug("[PositionBasedSearch] Could not find based on position, finding using search."); return(Create(containerItemFactory, searchCriteria, actionListener)); } AutomationElement automationElement = AutomationElementX.GetAutomationElementFromPoint(location); if (automationElement != null && searchCriteria.AppliesTo(automationElement)) { IUIItem item = new DictionaryMappedItemFactory().Create(automationElement, actionListener, searchCriteria.CustomItemType); return(UIItemProxyFactory.Create(item, actionListener)); } WhiteLogger.Instance.DebugFormat("[PositionBasedSearch] UIItem {0} changed its position, finding using search.", searchCriteria); return(Create(containerItemFactory, searchCriteria, actionListener)); }