/// <summary> /// Look for a widget with the given name and click it. It and all its parents must be visible and enabled. /// </summary> /// <param name="widgetName"></param> /// <param name="xOffset"></param> /// <param name="yOffset"></param> /// <param name="origin"></param> /// <param name="secondsToWait">Total seconds to stay in this function waiting for the named widget to become visible.</param> /// <returns></returns> public bool ClickByName(string widgetName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, double secondsToWait = 0, SearchRegion searchRegion = null) { SystemWindow containingWindow; GuiWidget widgetToClick = GetWidgetByName(widgetName, out containingWindow, secondsToWait, searchRegion); if (widgetToClick != null) { RectangleDouble childBounds = widgetToClick.TransformToParentSpace(containingWindow, widgetToClick.LocalBounds); if (origin == ClickOrigin.Center) { xOffset += (int)childBounds.Width / 2; yOffset += (int)childBounds.Height / 2; } Point2D screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + xOffset, childBounds.Bottom + yOffset), containingWindow); SetMouseCursorPosition(screenPosition.x, screenPosition.y); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(upDelaySeconds); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); return(true); } return(false); }
public bool DragDropByName(string widgetNameDrag, string widgetNameDrop, int xOffsetDrag = 0, int yOffsetDrag = 0, ClickOrigin originDrag = ClickOrigin.Center, int xOffsetDrop = 0, int yOffsetDrop = 0, ClickOrigin originDrop = ClickOrigin.Center, double secondsToWait = 0, SearchRegion searchRegion = null) { if (DragByName(widgetNameDrag, xOffsetDrag, yOffsetDrag, originDrag, secondsToWait, searchRegion)) { return(DropByName(widgetNameDrop, xOffsetDrop, yOffsetDrop, originDrop, secondsToWait, searchRegion)); } return(false); }
public bool DropImage(string imageName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null) { ImageBuffer imageToLookFor = LoadImageFromSourcFolder(imageName); if (imageToLookFor != null) { return(DropImage(imageToLookFor, xOffset, yOffset, origin, searchRegion)); } return(false); }
public bool ClickImage(string imageName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null, MouseButtons mouseButtons = MouseButtons.Left) { ImageBuffer imageToLookFor = LoadImageFromSourcFolder(imageName); if (imageToLookFor != null) { return(ClickImage(imageToLookFor, xOffset, yOffset, origin, searchRegion, mouseButtons)); } return(false); }
public bool DragDropImage(ImageBuffer imageNeedleDrag, ImageBuffer imageNeedleDrop, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offsetDrag = default(Point2D), ClickOrigin originDrag = ClickOrigin.Center, Point2D offsetDrop = default(Point2D), ClickOrigin originDrop = ClickOrigin.Center) { if (searchRegion == null) { searchRegion = GetScreenRegion(); } if (DragImage(imageNeedleDrag, secondsToWait, searchRegion, offsetDrag, originDrag)) { return(DropImage(imageNeedleDrop, secondsToWait, searchRegion, offsetDrop, originDrop)); } return(false); }
public bool DragDropImage(string imageNameDrag, string imageNameDrop, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offsetDrag = default(Point2D), ClickOrigin originDrag = ClickOrigin.Center, Point2D offsetDrop = default(Point2D), ClickOrigin originDrop = ClickOrigin.Center) { ImageBuffer imageNeedleDrag = LoadImageFromSourceFolder(imageNameDrag); if (imageNeedleDrag != null) { ImageBuffer imageNeedleDrop = LoadImageFromSourceFolder(imageNameDrop); if (imageNeedleDrop != null) { return(DragDropImage(imageNeedleDrag, imageNeedleDrop, secondsToWait, searchRegion, offsetDrag, originDrag, offsetDrop, originDrop)); } } return(false); }
private void ClickWidget(GuiWidget widget, SystemWindow containingWindow, ClickOrigin origin, Point2D offset, Point2D offsetHint, bool isDoubleClick = false) { MoveMouseToWidget(widget, containingWindow, offset, offsetHint, origin, out Point2D screenPosition); inputSystem.CreateMouseEvent(MouseConsts.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); WaitforDraw(containingWindow); if (isDoubleClick) { Thread.Sleep(150); inputSystem.CreateMouseEvent(MouseConsts.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); WaitforDraw(containingWindow); } Delay(UpDelaySeconds); inputSystem.CreateMouseEvent(MouseConsts.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); WaitforDraw(containingWindow); Delay(0.2); }
public bool DropImage(ImageBuffer imageNeedle, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null) { if (origin == ClickOrigin.Center) { xOffset += imageNeedle.Width / 2; yOffset += imageNeedle.Height / 2; } if (searchRegion == null) { searchRegion = GetScreenRegion(); } Vector2 matchPosition; double bestMatch; if (searchRegion.Image.FindLeastSquaresMatch(imageNeedle, out matchPosition, out bestMatch, MatchLimit)) { int screenHeight = NativeMethods.GetCurrentScreenHeight(); int clickY = (int)(searchRegion.ScreenRect.Bottom + matchPosition.y + yOffset); int clickYOnScreen = screenHeight - clickY; // invert to put it on the screen Point2D screenPosition = new Point2D((int)matchPosition.x + xOffset, clickYOnScreen); SetMouseCursorPosition(screenPosition.x, screenPosition.y); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); return true; } return false; }
public bool ClickImage(ImageBuffer imageNeedle, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null, MouseButtons mouseButtons = MouseButtons.Left) { if (origin == ClickOrigin.Center) { xOffset += imageNeedle.Width / 2; yOffset += imageNeedle.Height / 2; } if (searchRegion == null) { searchRegion = GetScreenRegion(); } Vector2 matchPosition; double bestMatch; if (searchRegion.Image.FindLeastSquaresMatch(imageNeedle, out matchPosition, out bestMatch, MatchLimit)) { int screenHeight = NativeMethods.GetCurrentScreenHeight(); int clickY = (int)(searchRegion.ScreenRect.Bottom + matchPosition.y + yOffset); int clickYOnScreen = screenHeight - clickY; // invert to put it on the screen Point2D screenPosition = new Point2D((int)matchPosition.x + xOffset, clickYOnScreen); SetMouseCursorPosition(screenPosition.x, screenPosition.y); switch (mouseButtons) { case MouseButtons.None: break; case MouseButtons.Left: NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(upDelaySeconds); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); break; case MouseButtons.Right: NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_RIGHTDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(upDelaySeconds); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_RIGHTUP, screenPosition.x, screenPosition.y, 0, 0); break; case MouseButtons.Middle: NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_MIDDLEDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(upDelaySeconds); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_MIDDLEUP, screenPosition.x, screenPosition.y, 0, 0); break; default: break; } return(true); } return(false); }
public bool DropImage(string imageName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null) { ImageBuffer imageToLookFor = LoadImageFromSourcFolder(imageName); if (imageToLookFor != null) { return DropImage(imageToLookFor, xOffset, yOffset, origin, searchRegion); } return false; }
public bool DropImage(ImageBuffer imageNeedle, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null) { if (origin == ClickOrigin.Center) { xOffset += imageNeedle.Width / 2; yOffset += imageNeedle.Height / 2; } if (searchRegion == null) { searchRegion = GetScreenRegion(); } Vector2 matchPosition; double bestMatch; if (searchRegion.Image.FindLeastSquaresMatch(imageNeedle, out matchPosition, out bestMatch, MatchLimit)) { int screenHeight = NativeMethods.GetCurrentScreenHeight(); int clickY = (int)(searchRegion.ScreenRect.Bottom + matchPosition.y + yOffset); int clickYOnScreen = screenHeight - clickY; // invert to put it on the screen Point2D screenPosition = new Point2D((int)matchPosition.x + xOffset, clickYOnScreen); SetMouseCursorPosition(screenPosition.x, screenPosition.y); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); return(true); } return(false); }
public bool DoubleClickByName(string widgetName, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center) { throw new NotImplementedException(); }
public bool DoubleClickByName(string widgetName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null) { throw new NotImplementedException(); }
/// <summary> /// Look for a widget with the given name and click it. It and all its parents must be visible and enabled. /// </summary> /// <param name="widgetName">The given widget name</param> /// <param name="secondsToWait">Total seconds to stay in this function waiting for the named widget to become visible.</param> public void ClickByName(string widgetName, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center, bool isDoubleClick = false) { double secondsToWait = 5; GuiWidget widgetToClick = GetWidgetByName(widgetName, out SystemWindow containingWindow, out Point2D offsetHint, secondsToWait, searchRegion); if (widgetToClick != null) { this.ClickWidget(widgetToClick, containingWindow, origin, offset, offsetHint, isDoubleClick); return; } throw new Exception($"ClickByName Failed: Named GuiWidget not found [{widgetName}]"); }
/// <summary> /// Look for a widget with the given name and click it. It and all its parents must be visible and enabled. /// </summary> /// <param name="widgetName">The given widget name</param> /// <param name="secondsToWait">Total seconds to stay in this function waiting for the named widget to become visible.</param> public void ClickByName(string widgetName, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center, bool isDoubleClick = false) { double secondsToWait = 5; GuiWidget widgetToClick = GetWidgetByName(widgetName, out SystemWindow containingWindow, out Point2D offsetHint, secondsToWait, searchRegion); if (widgetToClick != null) { MoveMouseToWidget(widgetToClick, containingWindow, offset, offsetHint, origin, out Point2D screenPosition); inputSystem.CreateMouseEvent(NativeMethods.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); WaitforDraw(containingWindow); if (isDoubleClick) { Thread.Sleep(150); inputSystem.CreateMouseEvent(NativeMethods.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); WaitforDraw(containingWindow); } Delay(UpDelaySeconds); inputSystem.CreateMouseEvent(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); WaitforDraw(containingWindow); Delay(0.2); return; } throw new Exception($"ClickByName Failed: Named GuiWidget not found [{widgetName}]"); }
public void DoubleClickByName(string widgetName, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center) { this.ClickByName(widgetName, searchRegion, offset, origin, isDoubleClick: true); }
public bool DragDropImage(string imageNameDrag, string imageNameDrop, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offsetDrag = default(Point2D), ClickOrigin originDrag = ClickOrigin.Center, Point2D offsetDrop = default(Point2D), ClickOrigin originDrop = ClickOrigin.Center) { ImageBuffer imageNeedleDrag = LoadImageFromSourcFolder(imageNameDrag); if (imageNeedleDrag != null) { ImageBuffer imageNeedleDrop = LoadImageFromSourcFolder(imageNameDrop); if (imageNeedleDrop != null) { return DragDropImage(imageNeedleDrag, imageNeedleDrop, secondsToWait, searchRegion, offsetDrag, originDrag, offsetDrop, originDrop); } } return false; }
public bool DropImage(string imageName, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center) { ImageBuffer imageToLookFor = LoadImageFromSourcFolder(imageName); if (imageToLookFor != null) { return DropImage(imageToLookFor, secondsToWait, searchRegion, offset, origin); } return false; }
public bool DragDropImage(ImageBuffer imageNeedleDrag, ImageBuffer imageNeedleDrop, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offsetDrag = default(Point2D), ClickOrigin originDrag = ClickOrigin.Center, Point2D offsetDrop = default(Point2D), ClickOrigin originDrop = ClickOrigin.Center) { if (searchRegion == null) { searchRegion = GetScreenRegion(); } if (DragImage(imageNeedleDrag, secondsToWait, searchRegion, offsetDrag, originDrag)) { return DropImage(imageNeedleDrop, secondsToWait, searchRegion, offsetDrop, originDrop); } return false; }
public bool DragDropImage(string imageNameDrag, string imageNameDrop, int xOffsetDrag = 0, int yOffsetDrag = 0, ClickOrigin originDrag = ClickOrigin.Center, int xOffsetDrop = 0, int yOffsetDrop = 0, ClickOrigin originDrop = ClickOrigin.Center, SearchRegion searchRegion = null) { ImageBuffer imageNeedleDrag = LoadImageFromSourcFolder(imageNameDrag); if (imageNeedleDrag != null) { ImageBuffer imageNeedleDrop = LoadImageFromSourcFolder(imageNameDrop); if (imageNeedleDrop != null) { return(DragDropImage(imageNeedleDrag, imageNeedleDrop, xOffsetDrag, yOffsetDrag, originDrag, xOffsetDrop, yOffsetDrop, originDrop, searchRegion)); } } return(false); }
public bool MoveToImage(string imageName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null) { throw new NotImplementedException(); }
public bool DragDropImage(ImageBuffer imageNeedleDrag, ImageBuffer imageNeedleDrop, int xOffsetDrag = 0, int yOffsetDrag = 0, ClickOrigin originDrag = ClickOrigin.Center, int xOffsetDrop = 0, int yOffsetDrop = 0, ClickOrigin originDrop = ClickOrigin.Center, SearchRegion searchRegion = null) { if (searchRegion == null) { searchRegion = GetScreenRegion(); } if (DragImage(imageNeedleDrag, xOffsetDrag, yOffsetDrag, originDrag, searchRegion)) { return(DropImage(imageNeedleDrop, xOffsetDrop, yOffsetDrop, originDrop, searchRegion)); } return(false); }
public bool DragDropByName(string widgetNameDrag, string widgetNameDrop, int xOffsetDrag = 0, int yOffsetDrag = 0, ClickOrigin originDrag = ClickOrigin.Center, int xOffsetDrop = 0, int yOffsetDrop = 0, ClickOrigin originDrop = ClickOrigin.Center, double secondsToWait = 0, SearchRegion searchRegion = null) { if (DragByName(widgetNameDrag, xOffsetDrag, yOffsetDrag, originDrag, secondsToWait, searchRegion)) { return DropByName(widgetNameDrop, xOffsetDrop, yOffsetDrop, originDrop, secondsToWait, searchRegion); } return false; }
public bool DropImage(string imageName, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center) { ImageBuffer imageToLookFor = LoadImageFromSourceFolder(imageName); if (imageToLookFor != null) { return(DropImage(imageToLookFor, secondsToWait, searchRegion, offset, origin)); } return(false); }
public bool MoveToByName(string widgetName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, double secondsToWait = 0, SearchRegion searchRegion = null) { SystemWindow containingWindow; GuiWidget widgetToClick = GetWidgetByName(widgetName, out containingWindow, secondsToWait, searchRegion); if (widgetToClick != null) { RectangleDouble childBounds = widgetToClick.TransformToParentSpace(containingWindow, widgetToClick.LocalBounds); if (origin == ClickOrigin.Center) { xOffset += (int)childBounds.Width / 2; yOffset += (int)childBounds.Height / 2; } Point2D screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + xOffset, childBounds.Bottom + yOffset), containingWindow); SetMouseCursorPosition(screenPosition.x, screenPosition.y); return true; } return false; }
/// <summary> /// Look for a widget with the given name and click it. It and all its parents must be visible and enabled. /// </summary> /// <param name="widgetName">The given widget name</param> /// <param name="secondsToWait">Total seconds to stay in this function waiting for the named widget to become visible.</param> public void ClickByName(string widgetName, double secondsToWait = 5, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center, double delayBeforeReturn = 0.2) { SystemWindow containingWindow; GuiWidget widgetToClick = GetWidgetByName(widgetName, out containingWindow, secondsToWait, searchRegion); if (widgetToClick != null) { RectangleDouble childBounds = widgetToClick.TransformToParentSpace(containingWindow, widgetToClick.LocalBounds); if (origin == ClickOrigin.Center) { offset.x += (int)childBounds.Width / 2; offset.y += (int)childBounds.Height / 2; } Point2D screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + offset.x, childBounds.Bottom + offset.y), containingWindow); SetMouseCursorPosition(screenPosition.x, screenPosition.y); inputSystem.CreateMouseEvent(NativeMethods.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(UpDelaySeconds); inputSystem.CreateMouseEvent(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); // After firing the click event, wait the given period of time before returning to allow MatterControl // to complete the targeted action Wait(delayBeforeReturn); return; } throw new Exception($"ClickByName Failed: Named GuiWidget not found [{widgetName}]"); }
public bool DragDropByName(string widgetNameDrag, string widgetNameDrop, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offsetDrag = default(Point2D), ClickOrigin originDrag = ClickOrigin.Center, Point2D offsetDrop = default(Point2D), ClickOrigin originDrop = ClickOrigin.Center) { if (DragByName(widgetNameDrag, secondsToWait, searchRegion, offsetDrag, originDrag)) { return DropByName(widgetNameDrop, secondsToWait, searchRegion, offsetDrop, originDrop); } return false; }
public bool DragByName(string widgetName, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center, MouseButtons mouseButtons = MouseButtons.Left) { SystemWindow containingWindow; Point2D offsetHint; GuiWidget widgetToClick = GetWidgetByName(widgetName, out containingWindow, out offsetHint, secondsToWait, searchRegion); if (widgetToClick != null) { RectangleDouble childBounds = widgetToClick.TransformToParentSpace(containingWindow, widgetToClick.LocalBounds); if (origin == ClickOrigin.Center) { offset += offsetHint; } Point2D screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + offset.x, childBounds.Bottom + offset.y), containingWindow); SetMouseCursorPosition(screenPosition.x, screenPosition.y); inputSystem.CreateMouseEvent(GetMouseDown(mouseButtons), screenPosition.x, screenPosition.y, 0, 0); return(true); } return(false); }
public bool DropByName(string widgetName, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center) { SystemWindow containingWindow; GuiWidget widgetToClick = GetWidgetByName(widgetName, out containingWindow, secondsToWait, searchRegion); if (widgetToClick != null) { RectangleDouble childBounds = widgetToClick.TransformToParentSpace(containingWindow, widgetToClick.LocalBounds); if (origin == ClickOrigin.Center) { offset.x += (int)childBounds.Width / 2; offset.y += (int)childBounds.Height / 2; } Point2D screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + offset.x, childBounds.Bottom + offset.y), containingWindow); SetMouseCursorPosition(screenPosition.x, screenPosition.y); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); return true; } return false; }
public void MoveMouseToWidget(GuiWidget widget, SystemWindow containingWindow, Point2D offset, Point2D offsetHint, ClickOrigin origin, out Point2D screenPosition) { RectangleDouble childBounds = widget.TransformToParentSpace(containingWindow, widget.LocalBounds); screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + offset.x, childBounds.Bottom + offset.y), containingWindow); int steps = (int)((TimeToMoveMouse * 1000) / 20); Vector2 start = new Vector2(CurrentMousePosition().x, CurrentMousePosition().y); if (origin == ClickOrigin.Center) { offset += offsetHint; } for (int i = 0; i < steps; i++) { childBounds = widget.TransformToParentSpace(containingWindow, widget.LocalBounds); screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + offset.x, childBounds.Bottom + offset.y), containingWindow); Vector2 end = new Vector2(screenPosition.x, screenPosition.y); Vector2 delta = end - start; double ratio = i / (double)steps; ratio = Cubic.Out(ratio); Vector2 current = start + delta * ratio; inputSystem.SetCursorPosition((int)current.X, (int)current.Y); Thread.Sleep(20); } inputSystem.SetCursorPosition(screenPosition.x, screenPosition.y); }
public bool ClickImage(string imageName, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null, MouseButtons mouseButtons = MouseButtons.Left) { ImageBuffer imageToLookFor = LoadImageFromSourcFolder(imageName); if (imageToLookFor != null) { return ClickImage(imageToLookFor, xOffset, yOffset, origin, searchRegion, mouseButtons); } return false; }
public bool ClickImage(ImageBuffer imageNeedle, int xOffset = 0, int yOffset = 0, ClickOrigin origin = ClickOrigin.Center, SearchRegion searchRegion = null, MouseButtons mouseButtons = MouseButtons.Left) { if (origin == ClickOrigin.Center) { xOffset += imageNeedle.Width / 2; yOffset += imageNeedle.Height / 2; } if (searchRegion == null) { searchRegion = GetScreenRegion(); } Vector2 matchPosition; double bestMatch; if (searchRegion.Image.FindLeastSquaresMatch(imageNeedle, out matchPosition, out bestMatch, MatchLimit)) { int screenHeight = NativeMethods.GetCurrentScreenHeight(); int clickY = (int)(searchRegion.ScreenRect.Bottom + matchPosition.y + yOffset); int clickYOnScreen = screenHeight - clickY; // invert to put it on the screen Point2D screenPosition = new Point2D((int)matchPosition.x + xOffset, clickYOnScreen); SetMouseCursorPosition(screenPosition.x, screenPosition.y); switch (mouseButtons) { case MouseButtons.None: break; case MouseButtons.Left: NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(upDelaySeconds); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); break; case MouseButtons.Right: NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_RIGHTDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(upDelaySeconds); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_RIGHTUP, screenPosition.x, screenPosition.y, 0, 0); break; case MouseButtons.Middle: NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_MIDDLEDOWN, screenPosition.x, screenPosition.y, 0, 0); Wait(upDelaySeconds); NativeMethods.mouse_event(NativeMethods.MOUSEEVENTF_MIDDLEUP, screenPosition.x, screenPosition.y, 0, 0); break; default: break; } return true; } return false; }
public bool DropImage(ImageBuffer imageNeedle, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center) { if (origin == ClickOrigin.Center) { offset.x += imageNeedle.Width / 2; offset.y += imageNeedle.Height / 2; } if (searchRegion == null) { searchRegion = GetScreenRegion(); } Vector2 matchPosition; double bestMatch; if (searchRegion.Image.FindLeastSquaresMatch(imageNeedle, out matchPosition, out bestMatch, MatchLimit)) { int screenHeight = inputSystem.GetCurrentScreenHeight(); int clickY = (int)(searchRegion.ScreenRect.Bottom + matchPosition.y + offset.y); int clickYOnScreen = screenHeight - clickY; // invert to put it on the screen Point2D screenPosition = new Point2D((int)matchPosition.x + offset.x, clickYOnScreen); SetMouseCursorPosition(screenPosition.x, screenPosition.y); inputSystem.CreateMouseEvent(NativeMethods.MOUSEEVENTF_LEFTUP, screenPosition.x, screenPosition.y, 0, 0); return(true); } return(false); }
public bool DragDropImage(ImageBuffer imageNeedleDrag, ImageBuffer imageNeedleDrop, int xOffsetDrag = 0, int yOffsetDrag = 0, ClickOrigin originDrag = ClickOrigin.Center, int xOffsetDrop = 0, int yOffsetDrop = 0, ClickOrigin originDrop = ClickOrigin.Center, SearchRegion searchRegion = null) { if (searchRegion == null) { searchRegion = GetScreenRegion(); } if (DragImage(imageNeedleDrag, xOffsetDrag, yOffsetDrag, originDrag, searchRegion)) { return DropImage(imageNeedleDrop, xOffsetDrop, yOffsetDrop, originDrop, searchRegion); } return false; }
public bool DragDropByName(string widgetNameDrag, string widgetNameDrop, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offsetDrag = default(Point2D), ClickOrigin originDrag = ClickOrigin.Center, Point2D offsetDrop = default(Point2D), ClickOrigin originDrop = ClickOrigin.Center) { if (DragByName(widgetNameDrag, secondsToWait, searchRegion, offsetDrag, originDrag)) { return(DropByName(widgetNameDrop, secondsToWait, searchRegion, offsetDrop, originDrop)); } return(false); }
public bool DragDropImage(string imageNameDrag, string imageNameDrop, int xOffsetDrag = 0, int yOffsetDrag = 0, ClickOrigin originDrag = ClickOrigin.Center, int xOffsetDrop = 0, int yOffsetDrop = 0, ClickOrigin originDrop = ClickOrigin.Center, SearchRegion searchRegion = null) { ImageBuffer imageNeedleDrag = LoadImageFromSourcFolder(imageNameDrag); if (imageNeedleDrag != null) { ImageBuffer imageNeedleDrop = LoadImageFromSourcFolder(imageNameDrop); if (imageNeedleDrop != null) { return DragDropImage(imageNeedleDrag, imageNeedleDrop, xOffsetDrag, yOffsetDrag, originDrag, xOffsetDrop, yOffsetDrop, originDrop, searchRegion); } } return false; }
public bool MoveToByName(string widgetName, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center) { SystemWindow containingWindow; GuiWidget widgetToClick = GetWidgetByName(widgetName, out containingWindow, secondsToWait, searchRegion); if (widgetToClick != null) { RectangleDouble childBounds = widgetToClick.TransformToParentSpace(containingWindow, widgetToClick.LocalBounds); if (origin == ClickOrigin.Center) { offset.x += (int)childBounds.Width / 2; offset.y += (int)childBounds.Height / 2; } Point2D screenPosition = SystemWindowToScreen(new Point2D(childBounds.Left + offset.x, childBounds.Bottom + offset.y), containingWindow); SetMouseCursorPosition(screenPosition.x, screenPosition.y); return(true); } return(false); }
public bool ClickImage(string imageName, double secondsToWait = 0, SearchRegion searchRegion = null, Point2D offset = default(Point2D), ClickOrigin origin = ClickOrigin.Center, MouseButtons mouseButtons = MouseButtons.Left) { ImageBuffer imageToLookFor = LoadImageFromSourcFolder(imageName); if (imageToLookFor != null) { return(ClickImage(imageToLookFor, secondsToWait, searchRegion, offset, origin, mouseButtons)); } return(false); }