public static void closeAllOpenedWindows(bool skipBackpack = false) { openEqWindow(); Window window; int x = gameWindowWidth + Constants.OpenedWindowCloseButtonFromLeftXOffset; int y = Constants.FirstOpenedWindowYOffset + Constants.OpenedWindowCloseButtonYOffset; if (skipBackpack) { window = secondOpenedWindow; y += firstOpenedWindow.height; } else { window = firstOpenedWindow; } while (window.height > 0) { MouseSimulator.click(x, y); } _currentContainer = null; }
/// <summary> /// 練功狀態下的Update /// </summary> private void AttactBehavior() { if (IsFighting() && mSurvivalPoints.Count > 0) { foreach (Point point in mSurvivalPoints) { Bitmap bmp = ScreenLib.GetScreen(point, AttackTargeSize); if (!ScreenLib.Scan(bmp, TargetColor)) { mSurvivalPoints.Remove(point); } } MouseSimulator.Position = mSurvivalPoints[0]; Thread.Sleep(100); KeyboardSimulator.KeyPress(PrimaryKey); Thread.Sleep(100); MouseSimulator.Click(MouseButton.Left); } else { mSurvivalPoints.Clear(); CurrentBehavior = NormalBehavior; } }
/// <summary> /// Find in first opened window items with given ID and right click on it /// </summary> /// <param name="items"></param> /// <param name="timeToUse"></param> public static bool UseItemsFromOpenedWindow(List <int> items, Window window, int timeToUse = 1) { int x, y; for (int i = 0; i < Constants.FullLineScrollClickCount * 3; i++) { MouseSimulator.click(Constants.OpenedWindowScrollFromRightXOffset + gameWindowWidth, Constants.OpenedWindowScrollUpButtonYOffset + yPositionOfOpenedWindow(window)); } Thread.Sleep(100); if (waitForWindowOpen(window)) { resizeOpenedWindows(); if (getItemCoordinatesFromOpenedWindow(out x, out y, items, window)) { for (int i = 0; i < timeToUse; i++) { MouseSimulator.click(x, y, true); if (timeToUse > 1) { Thread.Sleep(100); } } return(true); } } return(false); }
private void MouseClick(Keys key, int pressTime) { if (key == Keys.LButton) { MouseSimulator.MouseDown(MouseButtons.Left); } else if (key == Keys.RButton) { MouseSimulator.MouseDown(MouseButtons.Right); } else if (key == Keys.MButton) { MouseSimulator.MouseDown(MouseButtons.Middle); } else if (key == Keys.XButton1) { MouseSimulator.MouseDown(MouseButtons.XButton1); } else if (key == Keys.XButton2) { MouseSimulator.MouseDown(MouseButtons.XButton2); } new Thread(() => { DateTime objCurrentTime = new DateTime(); objCurrentTime = DateTime.Now; while (true) { var time = DateTime.Now - objCurrentTime; if (pressTime < time.TotalMilliseconds) { break; } Thread.Sleep(10); } if (key == Keys.LButton) { MouseSimulator.MouseUp(MouseButtons.Left); } else if (key == Keys.RButton) { MouseSimulator.MouseUp(MouseButtons.Right); } else if (key == Keys.MButton) { MouseSimulator.MouseUp(MouseButtons.Middle); } else if (key == Keys.XButton1) { MouseSimulator.MouseUp(MouseButtons.XButton1); } else if (key == Keys.XButton2) { MouseSimulator.MouseUp(MouseButtons.XButton2); } }).Start(); }
private static void TradeItems(List <TradeItem> items) { int x = gameWindowWidth - 50; int y = Constants.FirstOpenedWindowYOffset + Constants.TradeWindowFirstItemYOffset; ClickAndTradeItem(x, y, items); y = Constants.FirstOpenedWindowYOffset + Constants.TradeWindowSecondItemYOffset; ClickAndTradeItem(x, y, items); y = Constants.FirstOpenedWindowYOffset + Constants.ThirdItemFromListYOffset; ClickAndTradeItem(x, y, items); int LastTradeItemID = -1; while (LastTradeItemID != tradeItemID) { LastTradeItemID = tradeItemID; int scrollY = Constants.TradeWindowScrollDownButtonYOffset + Constants.FirstOpenedWindowYOffset; int scrollX = Constants.OpenedWindowScrollFromRightXOffset + gameWindowWidth; MouseSimulator.click(scrollX, scrollY); ClickAndTradeItem(x, y, items); } }
private void mimicMouse(EventType aEvent) { if (toggleThis && (aEvent == EventType.KEYUP || aEvent == EventType.MOUSEUP)) { if (isToggled) { MouseSimulator.MouseUp(convertMouseButton(secMouseKey)); } else { MouseSimulator.MouseDown(convertMouseButton(secMouseKey)); } isToggled = isToggled ? false : true; } if (!toggleThis) { if (aEvent == EventType.MOUSEDOWN || aEvent == EventType.KEYDOWN) { MouseSimulator.MouseDown(convertMouseButton(secMouseKey)); } if (aEvent == EventType.KEYUP || aEvent == EventType.MOUSEUP) { MouseSimulator.MouseUp(convertMouseButton(secMouseKey)); } } }
private void SimulateClick(IHTMLElement el) { BrowserWindow bw = browser as BrowserWindow; if (bw != null) { MyBrowser wb = bw.WBBrowser as MyBrowser; Point p = wb.GetScroll(); int scrollTop = p.Y; int scrollLeft = p.X; logger.InfoFormat("scrolltop:{0},scrollleft:{1}", scrollTop, scrollLeft); Rectangle rect = browser.GetAbsolutePosition(el); System.Windows.Forms.Control control = wb as System.Windows.Forms.Control; //获取控件绝对位置 Point location = control.PointToScreen(Point.Empty); Point newPosition = new Point(rect.X + rect.Width / 2 - scrollLeft, rect.Y + location.Y - scrollTop + 2); logger.InfoFormat("new position, x:{0}, y:{0}", newPosition.X, newPosition.Y); AutoRobo.Core.Macro.Macror.LinearSmoothMove(newPosition, 200); MouseSimulator.X = newPosition.X; MouseSimulator.Y = newPosition.Y; MouseSimulator.Click(System.Windows.Forms.MouseButtons.Left); } }
public static void Click(int xPosition, int yPosition, int floor, bool isRightClick) { if (GetData.isOnScreen(xPosition, yPosition, floor)) { MouseSimulator.clickOnField(xPosition, yPosition, isRightClick); } }
private void playOperation(IntPtr h, Rectangle rect, string op) { Point p = NativeUtils.NativeClientToScreen(h, rect.Location); rect.Location = p; //从左上角调整到控件中心 p.X += rect.Width / 2; p.Y += rect.Height / 2; string s = op + ":" + h.ToString() + rect.ToString(); lstBox.Items.Add(s); lstBox.SelectedIndex = lstBox.Items.Count - 1; //画这次的线和框 drawLine(_currentPoint, p); drawRectangle(rect); MouseSimulator.Position = p; System.Threading.Thread.Sleep(1000); MouseSimulator.Click(MouseButton.Left); System.Threading.Thread.Sleep(1000); //消除这次画的线和框 drawLine(_currentPoint, p); drawRectangle(rect); System.Threading.Thread.Sleep(1000); _currentPoint = p; }
void FireMouseDown(object sender, SelfTouchEventArgs e) { lock (SyncRoot) { _mouseDownCounter++; //only act after 3 hits if (_mouseDownCounter < NoiseFilter) { return; } _mouseUpCounter = 0; //Prevent int overflow if (_mouseDownCounter > int.MaxValue) { _mouseDownCounter = NoiseFilter; } //Check the time interval if (!CheckEventInterval(ref _mouseDownHit, MouseButtonsIntervalInMilliseconds) || _mouseDown) { return; } _mouseDown = true; WindowMessage = "Mouse down"; if (!_controlMouse) { return; } MouseSimulator.MouseDown(System.Windows.Input.MouseButton.Left); } }
public ControlHubClient(string host = "localhost", int port = 50051) { this.Host = host; this.Port = port; this.channel = new Channel(this.Host, this.Port, ChannelCredentials.Insecure); StandardInputClient = new StandardInput.StandardInputClient(channel); var InputSim = new InputSimulator(); var MouseSim = new MouseSimulator(InputSim); var KeyboardSim = new KeyboardSimulator(InputSim, useScanCodes: true); Console.WriteLine("0 for left, 1 for right"); while (true) { var input = Console.ReadLine(); if (input == "exit") { return; } else if (input == "0") { // MouseSim.LeftButtonClick(); MouseSim.LeftButtonDown(); MouseSim.LeftButtonUp(); } else if (input == "1") { MouseSim.RightButtonDown(); MouseSim.RightButtonUp(); } } }
void FireMouseUp(object sender, FilterEventArgs e) { //Hands are not on each other lock (SyncRoot) { //ShowDebugInfo(e, "Mouse up "); _mouseUpCounter++; //only act after 3 hits if (_mouseUpCounter < NoiseFilter) { return; } _mouseDownCounter = 0; //Prevent int overflow if (_mouseUpCounter > int.MaxValue) { _mouseUpCounter = NoiseFilter; } //check the time interval if (!CheckEventInterval(ref _mouseUpHit, MouseButtonsIntervalInMilliseconds) || !_mouseDown) { return; } _mouseDown = false; WindowMessage = "Mouse up"; if (!_controlMouse) { return; } MouseSimulator.MouseUp(System.Windows.Input.MouseButton.Left); } }
/// <summary> /// simple attempt to go to the waypoint. It is not certain to get there! /// </summary> /// <param name="waypoint"></param> public void go(Waypoint waypoint, int?dir = null) { if (dir != null) { _direction = (int)dir; } if (_direction == 8) { KeyboardSimulator.Press("up"); } else if (_direction == 6) { KeyboardSimulator.Press("right"); } else if (_direction == 4) { KeyboardSimulator.Press("left"); } else if (_direction == 2) { KeyboardSimulator.Press("down"); } else { MouseSimulator.clickOnField(waypoint.xPos, waypoint.yPos); } // KeyboardSimulator.Press("NUM" + direction); //MouseSimulator.clickOnField(waypoint.xPos, waypoint.yPos); }
/// <summary> /// Initialies a new instance of a macro player. /// </summary> public MacroPlayer() { underlyingMouseSimulator = new MouseSimulator(new InputSimulator()); underlyingKeyboardSimulator = new KeyboardSimulator(new InputSimulator()); repetitions = 1; cancelled = false; }
private void attack(Creature creature, Target settings) { // GetData.FollowTarget = settings.followTarget; MouseSimulator.clickOnField(creature.XPosition, creature.YPosition, true); int x, y; //setting follow mode GetData.getItemFromEQWindowPosition(out x, out y, Constants.FollowTargetModeXOffset, Constants.FollowTargetModeYOffset[settings.followTarget ? 1 : 0]); Thread.Sleep(200); while (working && GetData.getTargetID == creature.id && creature.HPPercent > settings.minHP && creature.HPPercent <= settings.maxHP)//waiting until creature is dead or target is not reachable { MouseSimulator.click(x, y); KeyboardSimulator.Simulate(settings.action); if (settings.diagonal) { tryToStandDiagonal(); } Thread.Sleep(500); if (settings.diagonal) { tryToStandDiagonal(); } Thread.Sleep(500); } if (creature.HPPercent == 0 && (settings.lookForFood || settings.loot)) { if (GetData.isAnyWindowOpened) { GetData.closeAllOpenedWindows(true); } else { GetData.openBackpack(); } if (settings.loot) { bool itemDropped; if (settings.lookForFood && GetData.HungryTime < 180) { itemDropped = GetData.CheckLoot(lootList, foodList); } else { itemDropped = GetData.CheckLoot(lootList); } if (itemDropped) { MouseSimulator.clickOnField(creature.XPosition, creature.YPosition, true); GetData.waitForWindowOpen(GetData.secondOpenedWindow); LootAndEat(creature, settings.lookForFood); } } } }
public StandardInputImpl() { var InputSim = new InputSimulator(); MouseSim = new MouseSimulator(InputSim); KeyboardSim = new KeyboardSimulator(InputSim, useScanCodes: true); CurrentKeys = new List <VirtualKeyCode>(); }
public static void openBackpack() { int x, y; getItemFromEQWindowPosition(out x, out y, Constants.ShieldXOffset, Constants.BackpackYOffset); MouseSimulator.click(x, y, true); _currentContainer = new Item("Default container", -1); }
public async Task MouseClickRepeatClickTests() { /* Arrange */ var handle = WindowFinder.FindWindow(null, "Genymotion for personal use - Google Galaxy Nexus - 4.2.2 - API 17 - 720x1280 v2.6 (720x1280, 320dpi) - 192.168.56.101"); /* Atc */ await MouseSimulator.ClickAsync(handle, MouseButton.Left, 50, 500, 1, 10); }
/// <summary> /// 左右鍵連點 /// </summary> private void OnRightAndLeftClick() { if (LeftAndRightCheckBox.Checked) { MouseSimulator.Click(MouseButton.Right); MouseSimulator.Click(MouseButton.Left); } }
private void sendCodeUp() { parent.ReCodes[MouseState.Extract(CodeUp)] = true; MouseSimulator.Up(CodeUp); MouseSimulator.Delay(); //stamp = DateTime.Now; }
/// <summary> /// Right mouse button click on specific location /// </summary> /// <param name="x">X position</param> /// <param name="y">Y position</param> /// <param name="delay">Waiting time delay</param> public static void RightMouseClick(int x, int y, int?delay = null) { var simulator = new MouseSimulator(new InputSimulator()); simulator.MoveMouseToPositionOnVirtualDesktop(calcVirtualScreenX(x), calcVirtualScreenY(y)); MakeDelay(delay); simulator.RightButtonClick(); }
private void is_begin_Click(object sender, EventArgs e) { if (is_begin.Text == "停止") { Environment.Exit(0); return; } string ms = is_ms.Text; int result; if (int.TryParse(ms, out result) && result > 0) { is_ms.ReadOnly = true; Task.Factory.StartNew(async() => { await Task.Run(() => { for (int i = 1; i < 5; i++) { is_begin.Text = string.Format("开始({0})", 5 - i); Thread.Sleep(1000); } }); is_begin.Text = string.Format("停止"); if (this.comboBox1.SelectedIndex == 0) { for (; ;) { await Task.Run(() => { uint x = (uint)Cursor.Position.X; uint y = (uint)Cursor.Position.Y; MouseSimulator.ClickLeftMouseButton(); Thread.Sleep(result); }); } } else { for (; ;) { await Task.Run(() => { uint x = (uint)Cursor.Position.X; uint y = (uint)Cursor.Position.Y; MouseSimulator.ClickRightMouseButton(); Thread.Sleep(result); }); } } }); } else { MessageBox.Show("输入的数字不正确,必须是正整数"); } }
public InterpretHelper() { var key = new KeyboardSimulator(new InputSimulator()); var mouse = new MouseSimulator(new InputSimulator()); inputter = new InputSimulator(key, mouse, null); timers = new List <System.Timers.Timer>(); }
/// <summary> /// 滑鼠單點延遲20ms /// </summary> private void OnMouseClick() { if (DoubleClickCheckBox.Checked) { MouseSimulator.MouseDown(MouseButton.Left); Thread.Sleep(20); MouseSimulator.MouseUp(MouseButton.Left); } }
void tickTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { EventType currentEvent = macroList.ElementAt(macroNumber).theMacro; if (currentEvent == EventType.KEYDOWN) { KeyboardSimulator.KeyDown((Keys)macroList.ElementAt(macroNumber).theMacroEvent); } if (currentEvent == EventType.KEYUP) { KeyboardSimulator.KeyUp((Keys)macroList.ElementAt(macroNumber).theMacroEvent); } if (currentEvent == EventType.MOUSEDOWN) { MouseSimulator.MouseDown((MouseButtons)macroList.ElementAt(macroNumber).theMacroEvent); } if (currentEvent == EventType.MOUSEUP) { MouseSimulator.MouseUp((MouseButtons)macroList.ElementAt(macroNumber).theMacroEvent); } if (currentEvent == EventType.MOUSEMOVE) { MouseSimulator.X = macroList.ElementAt(macroNumber).location.X; MouseSimulator.Y = macroList.ElementAt(macroNumber).location.Y; } if (currentEvent == EventType.MOUSEWHEEL) { MouseSimulator.MouseWheel(macroList.ElementAt(macroNumber).theMacroEvent); } macroNumber++; if (macroNumber >= macroList.Count) { tickTimer.Stop(); isToggled = false; } else { if (macroList.ElementAt(macroNumber).timeBeforeEvent <= 0) { tickTimer.Interval = 1; } else { tickTimer.Interval = macroList.ElementAt(macroNumber).timeBeforeEvent; } } }
private static void ClickAndTradeItem(int x, int y, List <TradeItem> items) { MouseSimulator.click(x, y); TradeItem ti; if (((ti = items.FirstOrDefault(tradeItem => tradeItem.item.ID == tradeItemID)) != null)) { TradeIt(ti.amount); } }
public static void ScrollUpWindow(Window window) { int x = gameWindowWidth + Constants.OpenedWindowScrollFromRightXOffset; int y = yPositionOfOpenedWindow(window) + Constants.OpenedWindowScrollUpButtonYOffset; for (int i = 0; i < Constants.FullLineScrollClickCount * 5; i++) { MouseSimulator.click(x, y); } }
//public static void ConsumeEvents() //{ // List<MacroEvent> tmpList; // lock (list) // { // while (list.Count == 0) // Monitor.Wait(list); // tmpList = list; // list = new List<MacroEvent>(); // } // //return ret; // playEvents(tmpList); //} private static void playEvents(List <MacroEvent> events) { foreach (MacroEvent macroEvent in events) { //Thread.Sleep() switch (macroEvent.MacroEventType) { case MacroEventType.MouseMove: { MacroMouseEventArgs mouseArgs = macroEvent.EventArgs.mouse; //MouseSimulator.Position = new Point(mouseArgs.X, mouseArgs.Y); MouseSimulator.setPositionFromNormalizedDelta(mouseArgs.X, mouseArgs.Y); } break; case MacroEventType.MouseDown: { MacroMouseEventArgs mouseArgs = macroEvent.EventArgs.mouse; MouseSimulator.MouseDown(mouseArgs.Button); } break; case MacroEventType.MouseUp: { MacroMouseEventArgs mouseArgs = macroEvent.EventArgs.mouse; MouseSimulator.MouseUp(mouseArgs.Button); } break; case MacroEventType.MouseWheel: { MacroMouseEventArgs mouseArgs = macroEvent.EventArgs.mouse; MouseSimulator.MouseWheel(mouseArgs.Delta); } break; case MacroEventType.KeyDown: { MacroKeyEventArgs keyArgs = macroEvent.EventArgs.key; KeyboardSimulator.KeyDown(keyArgs.KeyCode); } break; case MacroEventType.KeyUp: { MacroKeyEventArgs keyArgs = macroEvent.EventArgs.key; KeyboardSimulator.KeyUp(keyArgs.KeyCode); } break; default: break; } } }
private void playBackMacroButton_Click(object sender, EventArgs e) { foreach (MacroEvent macroEvent in events) { Thread.Sleep(macroEvent.TimeSinceLastEvent); switch (macroEvent.MacroEventType) { case MacroEventType.MouseMove: { MouseEventArgs mouseArgs = (MouseEventArgs)macroEvent.EventArgs; MouseSimulator.X = mouseArgs.X; MouseSimulator.Y = mouseArgs.Y; } break; case MacroEventType.MouseDown: { MouseEventArgs mouseArgs = (MouseEventArgs)macroEvent.EventArgs; MouseSimulator.MouseDown(mouseArgs.Button); } break; case MacroEventType.MouseUp: { MouseEventArgs mouseArgs = (MouseEventArgs)macroEvent.EventArgs; MouseSimulator.MouseUp(mouseArgs.Button); } break; case MacroEventType.KeyDown: { KeyEventArgs keyArgs = (KeyEventArgs)macroEvent.EventArgs; KeyboardSimulator.KeyDown(keyArgs.KeyCode); } break; case MacroEventType.KeyUp: { KeyEventArgs keyArgs = (KeyEventArgs)macroEvent.EventArgs; KeyboardSimulator.KeyUp(keyArgs.KeyCode); } break; default: break; } } }
private static int OpenSelectedChest(int chestNumber, int[] field, int currentLine) { chestNumber--; int result = currentLine + ScrollDown(chestNumber, currentLine); int y = GetData.yPositionOfOpenedWindow(GetData.firstOpenedWindow) + Constants.ItemInOpenedWindowYOffset; int x = field[chestNumber % 4]; MouseSimulator.click(x, y, true); Thread.Sleep(500); return(result); }
/// <summary> /// Initializes a new instance of the <see cref="InputSimulator"/> class using the default <see cref="KeyboardSimulator"/>, <see cref="MouseSimulator"/> and <see cref="WindowsInputDeviceStateAdaptor"/> instances. /// </summary> public InputSimulator() { Keyboard = new KeyboardSimulator(this); Mouse = new MouseSimulator(this); InputDeviceState = new WindowsInputDeviceStateAdaptor(); }