// Take a screenshot using the print screen button public static async Task Simple(int delay) { Logger.WriteLine("Capture (Simple) @ " + delay, "EndGame"); await Task.Delay(delay); var sim = new WindowsInput.InputSimulator(); sim.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.SNAPSHOT); }
/// <summary> /// 检查系统 方面 /// </summary> /// <param name="_isrunning"></param> private static bool CheckedSystem(bool _isrunning) { try { var sim = new WindowsInput.InputSimulator(); sim.Mouse.LeftButtonClick(); } catch (Exception ex) { CommonFunction.WriteLogInFile(ex.ToString(), LogType.RunLog); MessageBox.Show("关闭杀毒软件,或者目录添加为白名单!", "配置异常", MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } // 如果处在运行中,不需要再次启动 IP精灵 CommonParameter.IPElfIsInit = _isrunning; if (!_isrunning) { var _retStr = CommonParameter.IpelfCurrentInstance.InitLogin(); if (!string.IsNullOrEmpty(_retStr)) { MessageBox.Show(_retStr, "配置异常", MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } } if (DateTime.Now.Date != LicenseHelper.getWebsiteDatetime().Date) { MessageBox.Show("系统时间不正确!请同步互联网时间!", "系统异常", MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } return(true); }
private void getProccess() { Process[] processes = Process.GetProcesses(); Console.WriteLine("Proccesses found."); Regex test = new Regex(@"[fF][fF]7(_[a-z]{2}){0,1}\.exe"); foreach (Process proc in processes) { try { string[] procPath = proc.MainModule.FileName.Split('\\'); string procExeName = procPath[procPath.Length - 1]; if (test.IsMatch(procExeName)) { ff7 = proc; procPath[procPath.Length - 1] = ""; BasePath = String.Join("\\", procPath); break; } } catch (Exception) { } } try { inputSim = new WindowsInput.InputSimulator(); keySim = new WindowsInput.KeyboardSimulator(inputSim); windowHandle = ff7.MainWindowHandle; } catch (Exception) { } }
private static void Press(bool right = false, bool down = false, bool left = false, bool up = false) { WindowsInput.InputSimulator wi = new WindowsInput.InputSimulator(); if (right) { wi.Keyboard.KeyDown(WindowsInput.Native.VirtualKeyCode.RIGHT); } if (down) { wi.Keyboard.KeyDown(WindowsInput.Native.VirtualKeyCode.DOWN); } if (left) { wi.Keyboard.KeyDown(WindowsInput.Native.VirtualKeyCode.LEFT); } if (up) { wi.Keyboard.KeyDown(WindowsInput.Native.VirtualKeyCode.UP); } wi.Keyboard.Sleep(1); wi.Keyboard.KeyUp(WindowsInput.Native.VirtualKeyCode.RIGHT); wi.Keyboard.KeyUp(WindowsInput.Native.VirtualKeyCode.DOWN); wi.Keyboard.KeyUp(WindowsInput.Native.VirtualKeyCode.LEFT); wi.Keyboard.KeyUp(WindowsInput.Native.VirtualKeyCode.UP); }
public void KeyUpSimulator(Keys key) { var code = (WindowsInput.Native.VirtualKeyCode)Enum.Parse(typeof(WindowsInput.Native.VirtualKeyCode), ((int)key).ToString()); var dll = new WindowsInput.InputSimulator(); dll.Keyboard.KeyUp(code); }
internal static void ToggleTaskView() { Task.Factory.StartNew(() => { WindowsInput.InputSimulator kb = new WindowsInput.InputSimulator(); kb.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.TAB); }); }
//Simulate a single middle button click at the XY position passed in. public static void MiddleMouseButton(int xpos, int ypos) { //Instantiate mouse simulator object. WindowsInput.InputSimulator mouseSim = new WindowsInput.InputSimulator(); //Move cursor to screen position pass in. SetCursorPos(xpos, ypos); //Call middle button click function at the cursor's current location. mouseSim.Mouse.MiddleButtonClick(); }
// Take a screenshot using the print screen button public static async Task Simple(int delay) { Log.Info("Capture (Simple) @ " + delay, "EndGame"); await Task.Delay(delay); var sim = new WindowsInput.InputSimulator(); sim.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.SNAPSHOT); }
void CompositionTarget_Rendering(object sender, EventArgs e) { if ((Keyboard.GetKeyStates(Key.V) & KeyStates.Down) > 0 && (Keyboard.GetKeyStates(Key.LeftCtrl) & KeyStates.Down) > 0 && VirtualBuffer.Password != null) { Clipboard.SetText(Crypto.DecryptBuffer(VirtualBuffer.Password)); WindowsInput.InputSimulator s = new WindowsInput.InputSimulator(); s.Keyboard.ModifiedKeyStroke(VirtualKeyCode.CONVERT, VirtualKeyCode.VK_V); } }
//Simulate the left mouse button being released. public static void LeftMouseReleased(int xpos, int ypos) { //Instantiate mouse simulator object. WindowsInput.InputSimulator mouseSim = new WindowsInput.InputSimulator(); //Move cursor to screen position pass in. SetCursorPos(xpos, ypos); //Call left button down function at the cursor's current location. mouseSim.Mouse.LeftButtonUp(); }
//Simulate a single click the left mouse button at th XY position passed in. public static void LeftMouseClick(int xpos, int ypos) { //Instantiate mouse simulator object. WindowsInput.InputSimulator mouseSim = new WindowsInput.InputSimulator(); //Move cursor to screen position pass in. SetCursorPos(xpos, ypos); //Call left button click function at the cursor's current location. mouseSim.Mouse.LeftButtonClick(); mouseSim.Keyboard.KeyPress(VirtualKeyCode.CONTROL); }
static Target() { if (Target.keyConverter == null) { Target.keyConverter = new KeyConverter(); } if (Target.inputSimulator == null) { Target.inputSimulator = new WindowsInput.InputSimulator(); } }
public void PerformDragFromCol_aToCol_b(IWebDriver driver, string Col1, string Col2) { log.Info("doing drag and drop from " + Col1 + " to " + Col2); string elementIdOne = "column-" + Col1; string elementIdTwo = "column-" + Col2; By OneBy = By.Id(elementIdOne); By TwoBy = By.Id(elementIdTwo); //Drag from column 1 to column 2 //IWebElement From = driver.FindElement(By.XPath("//div[@id='column-" + Col1 + "']")); //IWebElement To = driver.FindElement(By.XPath("//div[@id='column-" + Col2 + "']")); IWebElement elementOneFrom = driver.FindElement(OneBy); IWebElement elementTwoTo = driver.FindElement(TwoBy); Actions ac = new Actions(driver); // drag a onto b log.Debug("drag element A onto B"); //ac.DragAndDrop(elementOneFrom, elementTwoTo).Build().Perform(); // ac.DragAndDropToOffset(elementOneFrom, 100, 200).Build().Perform(); // this should drop it Task.Delay(1000).Wait(); //Actions act = new Actions(driver); //act.DragAndDrop(From, To).Build().Perform(); /* Actions actions = ac.ClickAndHold(elementOneFrom); * actions.MoveToElement(elementTwoTo); * actions.Release(); * actions.Build(); * actions.Perform(); */ // cant get actions or draganddrop to work so using simulator which also isnt working var sim = new WindowsInput.InputSimulator(); //using nugget package by michael noonan int x1 = elementOneFrom.Location.X; int y1 = elementOneFrom.Location.Y; int x2 = elementTwoTo.Location.X; int y2 = elementTwoTo.Location.Y; sim.Mouse.MoveMouseTo(x1, y1); // move mouse above the viewport pane Task.Delay(1000).Wait(); sim.Mouse.LeftButtonDown(); sim.Mouse.MoveMouseTo(x2, y2); // move mouse above the viewport pane Task.Delay(1000).Wait(); sim.Mouse.LeftButtonUp(); Task.Delay(1000).Wait(); }
private void CommandShift_Executed(object sender, ExecutedRoutedEventArgs e) { var simulator = new WindowsInput.InputSimulator(); if (_isShiftPressed) { simulator.Keyboard.KeyUp(WindowsInput.Native.VirtualKeyCode.SHIFT); } else { simulator.Keyboard.KeyDown(WindowsInput.Native.VirtualKeyCode.SHIFT); } _isShiftPressed = !_isShiftPressed; }
public ExecutedCommand Execute() { ExecutedCommand cmd = new ExecutedCommand(); cmd.Uuid = this.Uuid; WindowsInput.InputSimulator simulator = new WindowsInput.InputSimulator(); cmd.Success = true; switch (Command) { case "mouse_info": cmd.Result = new MouseInfoCommand().Execute(); break; case "mouse_click": MouseClickCommand _cmdClick = new MouseClickCommand(simulator); _cmdClick.SetData(ConvertObject <MouseClickInput>(Data)); cmd.Result = _cmdClick.Execute(); break; case "mouse_move": MouseMoveCommand _cmdMove = new MouseMoveCommand(simulator); _cmdMove.SetData(ConvertObject <MouseMoveInput>(Data)); cmd.Result = _cmdMove.Execute(); break; case "keyboard_input": KeyboardInputCommand _keyboardCommand = new KeyboardInputCommand(simulator); _keyboardCommand.SetData(ConvertObject <KeyboardInputInput>(Data)); cmd.Result = _keyboardCommand.Execute(); break; case "process_list": ProcessCommand _processCommand = new ProcessCommand(); _processCommand.SetData(ConvertObject <ProcessInput>(Data)); cmd.Result = _processCommand.Execute(); break; default: cmd.ErrorMessage = "Command not found"; cmd.Success = false; break; } return(cmd); }
public Form1() { InitializeComponent(); InputSimulator = new WindowsInput.InputSimulator(); MouseSimulator = new WindowsInput.MouseSimulator(InputSimulator); KeyboardSimulator = new WindowsInput.KeyboardSimulator(InputSimulator); ButtonStop.Enabled = false; HookEvents = Hook.GlobalEvents(); BackgroundWorker = new BackgroundWorker() { WorkerSupportsCancellation = true }; BackgroundWorker.DoWork += BackgroundWorker_DoWork; BackgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted; ConfigInExecution = -1; RadioButtonProfitByValue.Checked = Properties.Settings.Default.RadioButtonProfitByValue_Checked; RadioButtonProfitByPercentage.Checked = Properties.Settings.Default.RadioButtonProfitByPercentage_Checked; NumericUpDownMaxSpent.Value = Properties.Settings.Default.NumericUpDownMaxSpent_Value; NumericUpDownProfitByValue.Value = Properties.Settings.Default.NumericUpDownProfitByValue_Value; NumericUpDownProfitByPercentage.Value = Properties.Settings.Default.NumericUpDownProfitByPercentage_Value; SearchTextPosition = Properties.Settings.Default.SearchTextPosition; FirstItemPosition = Properties.Settings.Default.FirstItemPosition; FirstValuePositionTop = Properties.Settings.Default.FirstValuePositionTop; FirstValuePositionBottom = Properties.Settings.Default.FirstValuePositionBottom; FirstCountPositionTop = Properties.Settings.Default.FirstCountPositionTop; FirstCountPositionBottom = Properties.Settings.Default.FirstCountPositionBottom; ChangeCountPosition = Properties.Settings.Default.ChangeCountPosition; AcceptButtonPosition = Properties.Settings.Default.AcceptButtonPosition; IsSearchTextPositionConfigured = Properties.Settings.Default.IsSearchTextPositionConfigured; IsFirstItemPositionConfigured = Properties.Settings.Default.IsFirstItemPositionConfigured; IsFirstValuePositionConfigured = Properties.Settings.Default.IsFirstValuePositionConfigured; IsFirstCountPositionConfigured = Properties.Settings.Default.IsFirstCountPositionConfigured; IsChangeCountPositionConfigured = Properties.Settings.Default.IsChangeCountPositionConfigured; IsAcceptButtonPositionConfigured = Properties.Settings.Default.IsAcceptButtonPositionConfigured; NumericUpDownDelayToRiskOperations.Value = Properties.Settings.Default.NumericUpDownDelayToRiskOperations_Value; AskToConfigurePositions(); }
public static void ChangeText()//IntPtr wParam, IntPtr lParam) { IsHotKeyAccess = false; WindowsInput.InputSimulator _InputSimulator = new WindowsInput.InputSimulator(); try { //var PointWindow = GetWindowUnderCursor(); Scripts.Engine.ClipboardData.TempClipboard = Scripts.Engine.ClipboardData.GetClipboardData(); Scripts.Engine.ClipboardData.ClipboardClear(); _InputSimulator.Keyboard.ModifiedKeyStroke(WindowsInput.Native.VirtualKeyCode.CONTROL, WindowsInput.Native.VirtualKeyCode.VK_C); //SendMessage(hWnd: PointWindow, Msg: WM_COPY, wParam: 0, lParam: 0); Thread.Sleep(50); if (Scripts.Engine.ClipboardData.GetText().Length > 0) { Thread.Sleep(50); var result = TranslateText(Text: Scripts.Engine.ClipboardData.GetText()); Scripts.Engine.ClipboardData.SetText(p_Text: result); Thread.Sleep(50); _InputSimulator.Keyboard.ModifiedKeyStroke(WindowsInput.Native.VirtualKeyCode.CONTROL, WindowsInput.Native.VirtualKeyCode.VK_V); //SendMessage(hWnd: PointWindow, Msg: WM_PASTE, wParam: 0, lParam: 0); Thread.Sleep(50); } } catch (Exception) { } //MessageBox.Show(lol); Thread.Sleep(50); Scripts.Engine.ClipboardData.SetClipboardData(Dictionary: Scripts.Engine.ClipboardData.TempClipboard); Thread.Sleep(50); Scripts.Engine.ClipboardData.TempClipboard.Clear(); IsHotKeyAccess = true; }
public XInputHolder() { #if MouseMode _inputSim = new WindowsInput.InputSimulator(); #endif //Values = new Dictionary<string, float>(); Values = new System.Collections.Concurrent.ConcurrentDictionary <string, float>(); Mappings = new Dictionary <string, string>(); Flags = new Dictionary <string, bool>(); ResetReport(); //if (!Flags.ContainsKey(Inputs.Flags.RUMBLE)) //{ // Flags.Add(Inputs.Flags.RUMBLE, false); //} // //if (!Values.ContainsKey(Inputs.Flags.RUMBLE)) //{ // Values.TryAdd(Inputs.Flags.RUMBLE, 0f); //} }
public static void ShowChangeText() { IsHotKeyAccess = false; WindowsInput.InputSimulator _InputSimulator = new WindowsInput.InputSimulator(); try { //var PointWindow = GetWindowUnderCursor(); Scripts.Engine.ClipboardData.TempClipboard = Scripts.Engine.ClipboardData.GetClipboardData(); Scripts.Engine.ClipboardData.ClipboardClear(); //SendMessage(hWnd: PointWindow, Msg: WM_COPY, wParam: 0, lParam: 0); _InputSimulator.Keyboard.ModifiedKeyStroke(WindowsInput.Native.VirtualKeyCode.CONTROL, WindowsInput.Native.VirtualKeyCode.VK_C); Thread.Sleep(50); if (Scripts.Engine.ClipboardData.GetText().Length > 0) { if (!Program.ShowTransliteration.Visible) { Program.ShowTransliteration.Show(); } Program.ShowTransliteration.FormLocation(); Program.ShowTransliteration.TextLine = TranslateText(Text: Scripts.Engine.ClipboardData.GetText()); } } catch (Exception) { } Thread.Sleep(50); Scripts.Engine.ClipboardData.SetClipboardData(Dictionary: Scripts.Engine.ClipboardData.TempClipboard); Thread.Sleep(50); Scripts.Engine.ClipboardData.TempClipboard.Clear(); IsHotKeyAccess = true; }
/// <summary> /// 移动并左键点击 /// </summary> internal static void SimMoveAndLefClick(int _x, int _y, bool _click) { var sim = new WindowsInput.InputSimulator(); int sim_x = CommonParameter.FormX + _x + ConstParameter.RandomSeed.Next(10, 200); int sim_y = CommonParameter.FormY + ConstParameter.BrowerY + _y % 300 + ConstParameter.RandomSeed.Next(5, 15); if (_y > 300) { // 则需要滚动滑轮 sim.Mouse .VerticalScroll((-_y / 300) * 3) .Sleep(CommonParameter.ConfigParam.simulate_speed.mouse_scroll.ToRandom()); // 必须先取整 } sim.Mouse .MoveMouseTo(CommonParameter.CurrentScreenWidth * sim_x, CommonParameter.CurrentScreenHeight * sim_y) .Sleep(1000); if (_click) { sim.Mouse.LeftButtonClick(); } }
public MotionResult ActSequenceMotion(IEnumerable<Motion> seqMotion) { try { if (null == seqMotion) return null; var InputSimulator = new WindowsInput.InputSimulator(); foreach (var Motion in seqMotion.WhereNotDefault()) { var MotionMousePosition = Motion?.MousePosition; var MotionTextEntry = Motion?.TextEntry; var mouseLocationOnScreen = MotionMousePosition.HasValue ? WindowHandle.ClientToScreen(MotionMousePosition.Value) + MouseOffsetStatic : null; if (mouseLocationOnScreen.HasValue || (Motion.WindowToForeground ?? false)) EnsureWindowIsForeground(); if (mouseLocationOnScreen.HasValue) { User32.SetCursorPos((int)mouseLocationOnScreen.Value.A, (int)mouseLocationOnScreen.Value.B); Thread.Sleep(MouseEventTimeDistanceMilli); } var mouseSetAction = new[] { Motion?.MouseButtonDown?.Select(button => new KeyValuePair<MouseButtonIdEnum, bool>(button, true)), Motion?.MouseButtonUp?.Select(button => new KeyValuePair<MouseButtonIdEnum, bool>(button, false)), }.ConcatNullable().ToArray(); if (0 < mouseSetAction?.Length) { foreach (var mouseAction in mouseSetAction) mouseActionFromButtonIdAndState?.TryGetValueOrDefault(mouseAction)?.Invoke(InputSimulator.Mouse); Thread.Sleep(MouseEventTimeDistanceMilli); } Motion?.KeyDown?.ForEach(keyDown => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyDown(keyDown); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); Motion?.KeyUp?.ForEach(keyUp => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyUp(keyUp); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); if (0 < MotionTextEntry?.Length) { EnsureWindowIsForeground(); InputSimulator.Keyboard.TextEntry(MotionTextEntry); } } return new MotionResult(true); } catch (Exception Exception) { return new MotionResult(Exception); } }
SictNaacProcessWirkung[] ScritWirkungFüüreAus( SictVorsclaagNaacProcessWirkung[] VorsclaagListeWirkung, IntPtr GbsAingaabeWaalZiilProzesWindowHandle) { if (null == VorsclaagListeWirkung) { return(null); } var VorherForegroundWindowHandle = Bib3.Windows.User32.GetForegroundWindow(); SictNaacProcessWirkungTailMausErgeebnis WirkungTailMausErgeebnis = null; var NaacZiilProcessListeWirkung = new SictNaacProcessWirkung[VorsclaagListeWirkung.Length]; for (int VorsclaagWirkungIndex = 0; VorsclaagWirkungIndex < VorsclaagListeWirkung.Length; VorsclaagWirkungIndex++) { var VorsclaagWirkung = VorsclaagListeWirkung[VorsclaagWirkungIndex]; var WirkungBeginZaitMili = Bib3.Glob.StopwatchZaitMikroSictInt() / 1000; System.Exception WirkungException = null; try { var MengeKey = VorsclaagWirkung.MengeWirkungKey; var MausPfaadListeWeegpunktFläce = VorsclaagWirkung.MausPfaadListeWeegpunktFläce; var MausPfaadTasteLinksAin = VorsclaagWirkung.MausPfaadTasteLinksAin; var MausPfaadTasteRectsAin = VorsclaagWirkung.MausPfaadTasteRectsAin; var AingaabeText = VorsclaagWirkung.AingaabeText; bool WirkungNict = false; if (null != MengeKey || null != MausPfaadListeWeegpunktFläce || true == MausPfaadTasteLinksAin || true == MausPfaadTasteRectsAin || !AingaabeText.NullOderLeer()) { if (VorherForegroundWindowHandle != GbsAingaabeWaalZiilProzesWindowHandle) { if (GbsAingaabeEveOnlnAutoWirkungSetForegroundNict) { WirkungNict = true; } else { var VersuucSetForegroundWindowErgeebnis = Bib3.Windows.User32.SetForegroundWindow(GbsAingaabeWaalZiilProzesWindowHandle); if (!VersuucSetForegroundWindowErgeebnis) { WirkungNict = true; } } } } if (!WirkungNict) { var inputSimulator = new WindowsInput.InputSimulator(); var WirkungTailMausDauer = new SictMesungZaitraumAusStopwatch(true); WirkungTailMausErgeebnis = MausWirkungFüüreAus(VorsclaagWirkung, 1, 4); WirkungTailMausDauer.EndeSezeJezt(); if (null != MengeKey) { foreach (var Key in MengeKey) { var MengeModifier = Key.MengeModifier; if (null != MengeModifier) { } else { if (null != Key.MengeKey) { foreach (var KeyKey in Key.MengeKey) { var KeyKeySictInputSimulator = Glob.VonWindowsInputKeyNaacInputSimulatorVirtualKeyCode((System.Windows.Input.Key)KeyKey); inputSimulator.Keyboard.KeyPress(KeyKeySictInputSimulator); } } } } } if (!AingaabeText.NullOderLeer()) { inputSimulator.Keyboard.TextEntry(AingaabeText); } } } catch (System.Exception Exception) { WirkungException = Exception; } finally { var WirkungEndeZaitMili = Bib3.Glob.StopwatchZaitMikroSictInt() / 1000; var WirkungErfolg = ((null == WirkungTailMausErgeebnis) ? true : WirkungTailMausErgeebnis.Erfolg) ?? false; if (null != WirkungTailMausErgeebnis) { if (!(true == WirkungTailMausErgeebnis.Erfolg)) { } } var ExceptionSictJsonAbbild = SictExceptionSictJson.ExceptionSictJson(WirkungException); var NaacZiilProcessWirkung = new SictNaacProcessWirkung( WirkungBeginZaitMili, WirkungEndeZaitMili, VorsclaagWirkung.Ident, WirkungTailMausErgeebnis, WirkungErfolg, ExceptionSictJsonAbbild); NaacZiilProcessListeWirkung[VorsclaagWirkungIndex] = NaacZiilProcessWirkung; } } return(NaacZiilProcessListeWirkung.ToArray()); }
static void performTaskOnWindow(Request.TaskOnIdentifiedWindowStructure taskOnIdentifiedWindow) { var windowHandle = new IntPtr(taskOnIdentifiedWindow.windowId.WindowHandleFromInt); var windowRect = new WinApi.Rect(); if (WinApi.GetWindowRect(windowHandle, ref windowRect) == IntPtr.Zero) { return; } var inputSimulator = new WindowsInput.InputSimulator(); var task = taskOnIdentifiedWindow.task; if (task.BringWindowToForeground != null) { WinApi.SetForegroundWindow(windowHandle); WinApi.ShowWindow(windowHandle, WinApi.SW_RESTORE); } if (task.MoveMouseToLocation != null) { WinApi.SetCursorPos( task.MoveMouseToLocation.x + windowRect.left, task.MoveMouseToLocation.y + windowRect.top); } if (task.MouseButtonDown != null) { if (task.MouseButtonDown.MouseButtonLeft != null) { inputSimulator.Mouse.LeftButtonDown(); } if (task.MouseButtonDown.MouseButtonRight != null) { inputSimulator.Mouse.RightButtonDown(); } } if (task.MouseButtonUp != null) { if (task.MouseButtonUp.MouseButtonLeft != null) { inputSimulator.Mouse.LeftButtonUp(); } if (task.MouseButtonUp.MouseButtonRight != null) { inputSimulator.Mouse.RightButtonUp(); } } if (task.KeyboardKeyDown != null) { inputSimulator.Keyboard.KeyDown((WindowsInput.Native.VirtualKeyCode)task.KeyboardKeyDown.KeyboardKeyFromVirtualKeyCode); } if (task.KeyboardKeyUp != null) { inputSimulator.Keyboard.KeyUp((WindowsInput.Native.VirtualKeyCode)task.KeyboardKeyUp.KeyboardKeyFromVirtualKeyCode); } }
private void SynTP_Dev_OnPacket() { SynTP_Dev.LoadPacket(SynTP_Pack); //Console.WriteLine(SynTP_Pack.GetLongProperty(SynPacketProperty.SP_ExtraFingerState)); try { //if (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_AcquireUnacquireGestures) != -1) Console.WriteLine("SP_AcquireUnacquireGestures " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_AcquireUnacquireGestures)); //if (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_Gestures) != 3) Console.WriteLine("SynDeviceProperty.SP_Gestures " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_Gestures)); //if (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_IsHScroll) != 0) Console.WriteLine("SynDeviceProperty.SP_IsHScroll " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_IsHScroll)); //if (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_MultiFingerGestures) != 7730) Console.WriteLine("SynDeviceProperty.SP_MultiFingerGestures " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_MultiFingerGestures)); //if (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_SecondaryGestures) != 0) Console.WriteLine("SynDeviceProperty.SP_SecondaryGestures" + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_SecondaryGestures)); //if (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_VerticalScrollingFlags) != 4) Console.WriteLine("SynDeviceProperty.SP_VerticalScrollingFlags " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_VerticalScrollingFlags)); //if (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_2FVerticalScrollingFlags) != 69) Console.WriteLine("SynDeviceProperty.SP_2FVerticalScrollingFlags " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_2FVerticalScrollingFlags)); //Console.WriteLine("ydEKTA= " + SynTP_Pack.GetLongProperty(SynPacketProperty.SP_YDelta)); //Console.WriteLine("Y= " +SynTP_Pack.GetLongProperty(SynPacketProperty.SP_Y)); //Console.WriteLine("ymICKEYS= " + SynTP_Pack.GetLongProperty(SynPacketProperty.SP_YMickeys)); //Console.WriteLine("SP_YDPI= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YDPI)); //Console.WriteLine("SP_YHiBorder= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YHiBorder)); //Console.WriteLine("SP_YHiBorderVScroll= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YHiBorderVScroll)); //Console.WriteLine("SP_YHiRim= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YHiRim)); //Console.WriteLine("SP_YHiSensor= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YHiSensor)); //Console.WriteLine("SP_YHiWideBorder= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YHiWideBorder)); //Console.WriteLine("SP_YLoBorder= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YLoBorder)); //Console.WriteLine("SP_YLoBorderVScroll= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YLoBorderVScroll)); //Console.WriteLine("SP_YLoRim= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YLoRim)); //Console.WriteLine("SP_YLoSensor= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YLoSensor)); //Console.WriteLine("SP_YLoWideBorder= " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_YLoWideBorder)); //Console.WriteLine("Click = " + SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_1FingerPressButtonAction)); //Console.WriteLine("staticY = " + staticy); //Console.WriteLine("X= " +SynTP_Pack.GetLongProperty(SynPacketProperty.SP_X)); //Up and Down Swipe Gestures if (SynTP_Pack.GetLongProperty(SynPacketProperty.SP_ButtonState) == LeftMouseButtonClick || SynTP_Pack.GetLongProperty(SynPacketProperty.SP_ButtonState) == VirtualLeftMouseButtonClick) if (isUpActive) isUpActive = false; ydelta = SynTP_Pack.GetLongProperty(SynPacketProperty.SP_YDelta); y = SynTP_Pack.GetLongProperty(SynPacketProperty.SP_Y); if (isValidGesture(SynTP_Pack.GetLongProperty(SynPacketProperty.SP_ExtraFingerState)) && ydelta > 0) { if (y >= ActivationUp) executeUp(); else staticy += ydelta; } else if (isValidGesture(SynTP_Pack.GetLongProperty(SynPacketProperty.SP_ExtraFingerState)) && ydelta < 0) { if (y <= ActivationDown && -staticy >= minLengthY) { executeDown(); } else staticy += ydelta; } else { if (-staticy >= minLengthY) { executeDown(); } else if (staticy >= minLengthY) executeUp(); staticy = 0; } //Left and Right Swipe Gestures xdelta = SynTP_Pack.GetLongProperty(SynPacketProperty.SP_XDelta); x = SynTP_Pack.GetLongProperty(SynPacketProperty.SP_X); if (isValidGestureRL(SynTP_Pack.GetLongProperty(SynPacketProperty.SP_ExtraFingerState)) && xdelta > 0) { if (x >= ActivationUp && staticx >= minLengthX) executeRight(); else staticx += xdelta; } else if (isValidGestureRL(SynTP_Pack.GetLongProperty(SynPacketProperty.SP_ExtraFingerState)) && xdelta < 0) { if (x <= ActivationDown && -staticx >= minLengthX) { executeLeft(); } else staticx += xdelta; } else { if (-staticx >= minLengthX) { executeLeft(); } else if (staticx >= minLengthX) executeRight(); staticx = 0; } //Console.WriteLine("yswipe Max " + ySwipeMax); //Console.WriteLine("yswipemin " + ySwipeMin); //if ((x >= SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_XHiBorder) && x <= maxX) && -xdelta >= 10 && (y <= ySwipeMax && y >= ySwipeMin)) Console.WriteLine("true"); if ((x>= (SynTP_Dev.GetLongProperty(SynDeviceProperty.SP_XHiBorder)) && x<= maxX) && -xdelta >= 10 && (y<=ySwipeMax && y >= ySwipeMin)) { WindowsInput.InputSimulator kb = new WindowsInput.InputSimulator(); kb.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_A); } } catch (ArgumentException) { Console.Write(":("); } GC.Collect(); GC.WaitForPendingFinalizers(); }
private static void SimulateKeyStroke(VirtualKeyCode[] keyStrokes, VirtualKeyCode keyCode) { WindowsInput.InputSimulator iis = new WindowsInput.InputSimulator(); iis.Keyboard.ModifiedKeyStroke(keyStrokes, keyCode); }
private WindowsInputWrapper() { _simulator = new WindowsInput.InputSimulator(); _logger = LogManager.GetCurrentClassLogger(); _busy = new ManualResetEvent(false); }
public MotionResult ActSequenceMotion(IEnumerable <Motion> seqMotion) { try { if (null == seqMotion) { return(null); } var InputSimulator = new WindowsInput.InputSimulator(); foreach (var Motion in seqMotion.WhereNotDefault()) { var MotionMousePosition = Motion?.MousePosition; var MotionTextEntry = Motion?.TextEntry; var mouseLocationOnScreen = MotionMousePosition.HasValue ? WindowHandle.ClientToScreen(MotionMousePosition.Value) + MouseOffsetStatic : null; if (mouseLocationOnScreen.HasValue || (Motion.WindowToForeground ?? false)) { EnsureWindowIsForeground(); } if (mouseLocationOnScreen.HasValue) { User32.SetCursorPos((int)mouseLocationOnScreen.Value.A, (int)mouseLocationOnScreen.Value.B); Thread.Sleep(MouseEventTimeDistanceMilli); } var mouseSetAction = new[] { Motion?.MouseButtonDown?.Select(button => new KeyValuePair <MouseButtonIdEnum, bool>(button, true)), Motion?.MouseButtonUp?.Select(button => new KeyValuePair <MouseButtonIdEnum, bool>(button, false)), }.ConcatNullable().ToArray(); if (0 < mouseSetAction?.Length) { foreach (var mouseAction in mouseSetAction) { mouseActionFromButtonIdAndState?.TryGetValueOrDefault(mouseAction)?.Invoke(InputSimulator.Mouse); } Thread.Sleep(MouseEventTimeDistanceMilli); } Motion?.KeyDown?.ForEach(keyDown => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyDown(keyDown); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); Motion?.KeyUp?.ForEach(keyUp => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyUp(keyUp); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); if (0 < MotionTextEntry?.Length) { EnsureWindowIsForeground(); InputSimulator.Keyboard.TextEntry(MotionTextEntry); } } return(new MotionResult(true)); } catch (Exception Exception) { return(new MotionResult(Exception)); } }
public static void Scroll(int scrollAmountVertical, int scrollAmountHorizontal) {//The amount to scroll in clicks. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user WindowsInput.InputSimulator mouseSim = new WindowsInput.InputSimulator(); mouseSim.Mouse.VerticalScroll(scrollAmountVertical); mouseSim.Mouse.HorizontalScroll(scrollAmountHorizontal); }
public MotionResult ActSequenceMotion(IEnumerable<Motion> SeqMotion) { try { if (null == SeqMotion) { return null; } var MousePosition = BotEngine.Windows.Extension.User32GetCursorPos() ?? new Vektor2DInt(0, 0); var InputSimulator = new WindowsInput.InputSimulator(); foreach (var Motion in SeqMotion.WhereNotDefault()) { var MotionMousePosition = Motion?.MousePosition; var MotionTextEntry = Motion?.TextEntry; if (MotionMousePosition.HasValue || (Motion.WindowToForeground ?? false)) EnsureWindowIsForeground(); if (MotionMousePosition.HasValue) { POINT PositionOnScreen; MouseMoveToPointInClientRect(WindowHandle, MotionMousePosition.Value + MouseOffsetStatic, out PositionOnScreen); MousePosition = PositionOnScreen.AsVektor2DInt(); Thread.Sleep(MouseMoveDelay); } if (0 < Motion?.MouseButtonDown?.Count() || 0 < Motion?.MouseButtonUp?.Count()) { EnsureWindowIsForeground(); User32MouseEvent(MousePosition, Motion?.MouseButtonDown, Motion?.MouseButtonUp); Thread.Sleep(MouseEventDelay); } Motion?.KeyDown?.ForEach(KeyDown => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyDown(KeyDown); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); Motion?.KeyUp?.ForEach(KeyUp => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyUp(KeyUp); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); if (0 < MotionTextEntry?.Length) { EnsureWindowIsForeground(); InputSimulator.Keyboard.TextEntry(MotionTextEntry); } } return new MotionResult(true); } catch (Exception Exception) { return new MotionResult(Exception); } }
public MotionResult ActSequenceMotion(IEnumerable<Motion> SeqMotion) { try { if (null == SeqMotion) { return null; } var MousePosition = BotEngine.Windows.Extension.User32GetCursorPos() ?? new Vektor2DInt(0, 0); var InputSimulator = new WindowsInput.InputSimulator(); var KeyboardSimulator = new WindowsInput.KeyboardSimulator(InputSimulator); foreach (var Motion in SeqMotion) { var MotionMousePosition = Motion?.MousePosition; if (MotionMousePosition.HasValue) { POINT PositionOnScreen; EnsureWindowIsForeground(WindowHandle); MouseMoveToPointInClientRect(WindowHandle, MotionMousePosition.Value, out PositionOnScreen); MousePosition = PositionOnScreen.AsVektor2DInt(); Thread.Sleep(MouseMoveDelay); } if (0 < Motion?.MouseButtonDown?.Count() || 0 < Motion?.MouseButtonUp?.Count()) { EnsureWindowIsForeground(WindowHandle); User32MouseEvent(MousePosition, Motion?.MouseButtonDown, Motion?.MouseButtonUp); Thread.Sleep(MouseEventDelay); } Motion?.KeyDown?.ForEachNullable(KeyDown => { EnsureWindowIsForeground(WindowHandle); InputSimulator.Keyboard.KeyDown(KeyDown); }); Motion?.KeyUp?.ForEachNullable(KeyUp => { EnsureWindowIsForeground(WindowHandle); InputSimulator.Keyboard.KeyUp(KeyUp); }); } return new MotionResult(true); } catch (Exception Exception) { return new MotionResult(Exception); } }
private InputSimulatorManager() { InputSimu = new WindowsInput.InputSimulator(); }
static void Main(string[] args) { WindowsInput.InputSimulator kb = new WindowsInput.InputSimulator(); kb.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.TAB); //Console.Read();// Keep console window open }
void executeDown() { WindowsInput.InputSimulator kb = new WindowsInput.InputSimulator(); if (isUpActive) { isUpActive = false; kb.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.TAB); } else kb.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_D); staticy = 0; }
void executeLeft() { List<VirtualKeyCode> Modify = new List<VirtualKeyCode>(); Modify.Add(VirtualKeyCode.LWIN); Modify.Add(VirtualKeyCode.CONTROL); WindowsInput.InputSimulator kb = new WindowsInput.InputSimulator(); kb.Keyboard.ModifiedKeyStroke(Modify, VirtualKeyCode.LEFT); //Console.WriteLine("ELFT"); //desktop = desktop.GetLeft(); //if (desktop != null) //desktop.Switch(); }
void executeRight() { List<VirtualKeyCode> Modify = new List<VirtualKeyCode>(); Modify.Add(VirtualKeyCode.LWIN); Modify.Add(VirtualKeyCode.CONTROL); WindowsInput.InputSimulator kb = new WindowsInput.InputSimulator(); kb.Keyboard.ModifiedKeyStroke(Modify, VirtualKeyCode.RIGHT); //Console.WriteLine("RIGHT"); }
public BotStepResult Step( bool motionEnabled, Func <Request, Response> service) { lock (Lock) { var StartTime = DateTime.Now; Exception Exception = null; string UIMessageText = null; KeyValuePair <UInt32[], int> windowClientRaster = default(KeyValuePair <UInt32[], int>); ImagePatternMatch[] RasterSetPatternMatch = null; ImagePatternMatch[] RasterSetPatterMatchTriggered = null; IconHandling[] SetIconCandidate = null; var ImageSearchDelegate = new Func <KeyValuePair <UInt32[], int>, IEnumerable <ImagePatternMatch> >(raster => service?.Invoke(new Request { ImagePatternMatchSearch = new ImagePatternMatchSearchRequest { Raster = raster, }, })?.ImagePatternMatchSearch?.SetMatch); try { var WindowHandle = this.WindowHandle; if (!WindowHandle.HasValue) { throw new ArgumentException("no window selected"); } BotEngine.Windows.RECT WindowClientRect; BotEngine.WinApi.User32.GetClientRect(WindowHandle.Value, out WindowClientRect); var WindowClientSize = new Vektor2DInt(WindowClientRect.Width, WindowClientRect.Height); var Motor = new Motor.WindowMotor(WindowHandle.Value); BotEngine.WinApi.User32.SetForegroundWindow(WindowHandle.Value); windowClientRaster = WinApi.Raster32BitFromClientRectFromWindowMitHandleOverDesktop(WindowHandle.Value); if (windowClientRaster.Value < 1) { throw new Exception("failed to take image of window."); } RasterSetPatternMatch = ImageSearchDelegate?.Invoke(windowClientRaster)?.ToArray(); var MouseMoveToRest = new Action(() => { UIMessageText += "move mouse to rest location." + Environment.NewLine; Motor.MouseMoveLinearContinuous(MouseRestLocation + new Vektor2DInt(44, 44), MouseRestLocation); }); var subsetMatchWithPatternIdContaining = new Func <string, IEnumerable <ImagePatternMatch> >(idPortion => RasterSetPatternMatch?.Where(match => match?.SourcePatternId?.RegexMatchSuccessIgnoreCase(Regex.Escape(idPortion)) ?? false)); var hourglassMatch = subsetMatchWithPatternIdContaining(PatternIdConfig.Hourglass)?.ToArray(); var closeButtonMatch = subsetMatchWithPatternIdContaining("close.button")?.FirstOrDefault(); var progressBarMatch = subsetMatchWithPatternIdContaining("progress")?.FirstOrDefault(); var clickToCollectMatch = subsetMatchWithPatternIdContaining("collect")?.FirstOrDefault(); var IdleIconMatch = subsetMatchWithPatternIdContaining(PatternIdConfig.Idle); SetIconCandidate = new[] { subsetMatchWithPatternIdContaining(PatternIdConfig.Coin), subsetMatchWithPatternIdContaining(PatternIdConfig.WorkshopProductReady), subsetMatchWithPatternIdContaining(PatternIdConfig.Idle), } .ConcatNullable() ?.WhereNotDefault() ?.Select(match => new IconHandling { PatternId = match.SourcePatternId, Location = match.Area.Center(), }) ?.Where(icon => SecurityMarginThickness < icon.Location.A && Math.Max(SecurityMarginThicknessTop, SecurityMarginThickness) < icon.Location.B && icon.Location.A + SecurityMarginThickness < WindowClientSize.A && icon.Location.B + SecurityMarginThickness < WindowClientSize.B) ?.ToArray(); foreach (var Icon in SetIconCandidate.EmptyIfNull()) { var lastVisit = ListIconVisited?.CastToNullable()?.LastOrDefault(visit => visit.Value.Key.PatternId == Icon.PatternId && DistanceInBoundProductIconAnim(visit.Value.Key.Location - Icon.Location)); Icon.LastVisitAge = (DateTime.Now - lastVisit?.Value)?.TotalSeconds; } var ListToVisit = SetIconCandidate // only consider icons which were already present in last step to prevent distraction by temporary floating icons triggered by collection. ?.Where(icon => StepLast?.SetIconCandidate?.Any(lastStepIcon => (lastStepIcon.Location - icon.Location).Length() < 3) ?? false) ?.OrderByDescending(t => t.LastVisitAge ?? int.MaxValue) ?.ThenBy(t => t.Location.B) ?.ToArray(); var IconToVisitNext = ListToVisit?.FirstOrDefault(); // production button contains a hourglass icon. // we want the shortest time and assume that is the one closest to the upper left. var productionPreferredButtonLocation = hourglassMatch ?.OrderBy(match => match.Area.Center().Length()) ?.FirstOrDefault(); // Baracks dialog has an hourglass too. var DialogIsProduction = 3 < hourglassMatch?.Length; UIMessageText += "next icon to visit: " + ((null == IconToVisitNext) ? "null" : ("'" + IconToVisitNext?.PatternId + "'" + " at " + IconToVisitNext.Location.RenderForUI() + " (last visited " + (((int?)IconToVisitNext.LastVisitAge)?.ToString() ?? "????") + "s ago)")) + Environment.NewLine; if (motionEnabled) { if (null != closeButtonMatch) { if (null != productionPreferredButtonLocation && DialogIsProduction) { UIMessageText += "click on production start button."; Motor.MouseClickLeft(productionPreferredButtonLocation.Area.Center()); goto StepEnd; } UIMessageText += "click on dialog close button."; Motor.MouseClickLeft((closeButtonMatch?.Area.Center()).Value); goto StepEnd; } if (null != progressBarMatch || null != clickToCollectMatch) { UIMessageText += "tooltip detected, move mouse to rest location."; MouseMoveToRest(); goto StepEnd; } if (null != IconToVisitNext && !(IconToVisitNext?.LastVisitAge < VisitDistanceMin)) { var BuildingProductIconReadyLocation = IconToVisitNext.Location; var IconIdMessage = "under icon of type " + IconToVisitNext?.PatternId + " at " + BuildingProductIconReadyLocation.RenderForUI(); UIMessageText += IconIdMessage + ":" + Environment.NewLine; var mouseDestination = BuildingProductIconReadyLocation + FromProductIconToBuildingOffset; ListIconVisited.Enqueue(new KeyValuePair <IconHandling, DateTime>(IconToVisitNext, DateTime.Now)); ListIconVisited.ListeKürzeBegin(400); BotEngine.WinApi.User32.SetForegroundWindow(WindowHandle.Value); if (IconToVisitNext.PatternId == PatternIdConfig.Idle) { UIMessageText += "open dialog at " + mouseDestination.RenderForUI() + "." + Environment.NewLine; Motor.MouseClick(mouseDestination, MouseButtonIdEnum.Left); } else { UIMessageText += "collect at " + mouseDestination.RenderForUI() + "." + Environment.NewLine; var PathStretch = new Vektor2DInt(CollectDragDistance, 0).RotatedByMikro((int)new Random((int)Bib3.Glob.StopwatchZaitMiliSictInt()).Next().SictUmgebrocen(0, 1000) * 1000); var collectLocationDistant = mouseDestination + PathStretch; var middle = (mouseDestination + collectLocationDistant) / 2; var listWaypoint = Extension.ListPointInterpolated(mouseDestination, collectLocationDistant, (int)Extension.RandomInt().SictUmgebrocen(7, 16)).ToArray(); listWaypoint = listWaypoint.Concat(listWaypoint.Reversed()).ToArray(); var LocationInScreenFromLocationInWindow = new Func <Vektor2DInt, Vektor2DInt>(windowClient => { var PointInScreen = new BotEngine.Windows.POINT { x = (int)windowClient.A, y = (int)windowClient.B }; BotEngine.WinApi.User32.ClientToScreen(Motor.WindowHandle, ref PointInScreen); return(new Vektor2DInt(PointInScreen.x, PointInScreen.y)); }); var simulator = new WindowsInput.InputSimulator(); simulator.Mouse.LeftButtonUp(); bool mouseButtonDown = false; foreach (var waypointInWindow in listWaypoint) { var locationOnScreen = LocationInScreenFromLocationInWindow(waypointInWindow); Thread.Sleep((int)Extension.RandomInt().SictUmgebrocen(0, 33)); BotEngine.WinApi.User32.SetCursorPos((int)locationOnScreen.A, (int)locationOnScreen.B); if (!mouseButtonDown) { mouseButtonDown = true; simulator.Mouse.LeftButtonDown(); } } simulator.Mouse.LeftButtonUp(); Thread.Sleep(111); } MouseMoveToRest(); goto StepEnd; } } StepEnd :; } catch (Exception tException) { Exception = tException; } var StepResult = new BotStepResult { StartTime = StartTime, Exception = Exception, UIMessageText = UIMessageText + " " + Bib3.Glob.SictString(Exception, true), WindowClientRaster = windowClientRaster, RasterSetPatternMatch = RasterSetPatternMatch, RasterSetPatterMatchTriggered = RasterSetPatterMatchTriggered, SetIconCandidate = SetIconCandidate, MotionEnabled = motionEnabled, EndTime = DateTime.Now, }; StepLast = StepResult; if (motionEnabled) { MotionEnabledStepLast = StepResult; } return(StepResult); } }
void executeUp() { if (!isUpActive) { isUpActive = true; WindowsInput.InputSimulator kb = new WindowsInput.InputSimulator(); kb.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.TAB); } //vdm.GetWindowDesktopId //var desktop = VirtualDesktop.FromHwnd(); //IntPtr handle = Process.GetCurrentProcess().MainWindowHandle; //VirtualDesktop desktop = VirtualDesktop.FromId(vdm.GetWindowDesktopId(handle)); //Console.WriteLine(" " + desktop.Id); //desktop.GetRight()?.Switch(); //desktop = desktop.GetRight(); //Console.WriteLine(" " + desktop.Id); //if (desktop != null) //desktop.Switch(); staticy = 0; }
public void Test2() { var sim = new WindowsInput.InputSimulator(); sim.Keyboard.KeyDown(WindowsInput.Native.VirtualKeyCode.VK_Q); }
public MotionResult ActSequenceMotion(IEnumerable <Motion> SeqMotion) { try { if (null == SeqMotion) { return(null); } var MousePosition = BotEngine.Windows.Extension.User32GetCursorPos() ?? new Vektor2DInt(0, 0); var InputSimulator = new WindowsInput.InputSimulator(); foreach (var Motion in SeqMotion.WhereNotDefault()) { var MotionMousePosition = Motion?.MousePosition; var MotionTextEntry = Motion?.TextEntry; if (MotionMousePosition.HasValue || (Motion.WindowToForeground ?? false)) { EnsureWindowIsForeground(); } if (MotionMousePosition.HasValue) { POINT PositionOnScreen; MouseMoveToPointInClientRect(WindowHandle, MotionMousePosition.Value + MouseOffsetStatic, out PositionOnScreen); MousePosition = PositionOnScreen.AsVektor2DInt(); Thread.Sleep(MouseMoveDelay); } if (0 < Motion?.MouseButtonDown?.Count() || 0 < Motion?.MouseButtonUp?.Count()) { EnsureWindowIsForeground(); User32MouseEvent(MousePosition, Motion?.MouseButtonDown, Motion?.MouseButtonUp); Thread.Sleep(MouseEventDelay); } Motion?.KeyDown?.ForEach(KeyDown => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyDown(KeyDown); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); Motion?.KeyUp?.ForEach(KeyUp => { EnsureWindowIsForeground(); InputSimulator.Keyboard.KeyUp(KeyUp); Thread.Sleep(KeyboardEventTimeDistanceMilli); }); if (0 < MotionTextEntry?.Length) { EnsureWindowIsForeground(); InputSimulator.Keyboard.TextEntry(MotionTextEntry); } } return(new MotionResult(true)); } catch (Exception Exception) { return(new MotionResult(Exception)); } }