public void TestClick(FlaUI.Core.Shapes.Point p) { var currClickPosition = Position; AutomationElementPropertyValues properties = appWindow.Properties; double leftPoisition = properties.BoundingRectangle.Value.Left; double topPoisition = properties.BoundingRectangle.Value.Top; p.X += leftPoisition < 0 ? 0 : leftPoisition; p.Y += topPoisition < 0 ? 0 : topPoisition; p.X = p.X * 1.25; p.Y = p.Y * 1.25; Position = p; if (LastClickPositions.Count > 0 && LastClickPositions[MouseButton.Left].Equals(currClickPosition)) { // Get the timeout needed to not fire a double click var timeout = (int)User32.GetDoubleClickTime() - DateTime.Now.Subtract(LastClickTimes[MouseButton.Left]).Milliseconds; // Wait the needed time to prevent the double click if (timeout > 0) { Thread.Sleep(timeout); } } MouseButton mouseButton = MouseButton.Left; Down(mouseButton, p); Up(mouseButton, p); LastClickTimes[mouseButton] = DateTime.Now; LastClickPositions[mouseButton] = Position; }
protected BasicAutomationElementBase(AutomationBase automation) { Automation = automation; Properties = new AutomationElementPropertyValues(this); }