private void MouseHook_HookActivated(Point point, MouseFlag flag) { if (validFlags.Contains(flag)) { MouseDown?.Invoke((int)flag); } }
private int HookProcedureCallback(int code, IntPtr wParam, IntPtr lParam) { if (code >= 0) { MouseFlag flag = (MouseFlag)wParam; MSLLHOOKSTRUCT mouseStruct = Marshal.PtrToStructure <MSLLHOOKSTRUCT>(lParam); HookActivated?.Invoke(mouseStruct.point, flag); } return(CallNextHookEx(hookId, code, wParam, lParam)); }
/// <summary> /// Inject a mouse event into the event loop, as if the user performed /// it with his mouse. /// </summary> public static void InjectMouseEvent(MouseFlag flags, DoublePoint pt, Int32 data, int extraInfo) { if (MouseAbsolutePos) { mouse_event((uint)(flags | MouseFlag.Absolute), (uint)pt.X, (uint)pt.Y, data, (UIntPtr)extraInfo); } else { mouse_event((uint)flags, (uint)pt.X, (uint)pt.Y, data, (UIntPtr)extraInfo); } }
public static void MouseInput(MouseButton button, bool buttonPressedState) { INPUT[] InputData = new INPUT[1]; InputData[0].type = (int)InputType.Mouse; //InputData[0].mi.wScan = 0; MouseFlag mouseFlag = buttonPressedState ? ToMouseButtonDownFlag(button) : ToMouseButtonUpFlag(button); InputData[0].mi.dwFlags = (int)mouseFlag; //InputData[0].mi.time = 0; //InputData[0].mi.dwExtraInfo = IntPtr.Zero; SendInput(1, InputData, Marshal.SizeOf(typeof(INPUT))); }
private static void FireEvent(MouseFlag flag, int data) { var inputEvent = new Input(); inputEvent.Type = 0; inputEvent.Data.Mouse = new MOUSEINPUT(); inputEvent.Data.Mouse.Flags = (uint)flag; //inputEvent.Data.Mouse.MouseData = (uint)data; inputEvent.Data.Mouse.ExtraInfo = IntPtr.Zero; Input[] inputList = new Input[1]; inputList[0] = inputEvent; var numberOfSuccessfulSimulatedInputs = SendInput(1, inputList, Marshal.SizeOf(typeof(Input))); if (numberOfSuccessfulSimulatedInputs == 0) { throw new Exception("The click simulation was not successful."); } }
private void button1_Click(object sender, EventArgs e) { #region 1.获取到微信窗口,最大化,前置 IntPtr weChatForm = WindowFormAPI.FindWindow("WeChatMainWndForPC", null); //注意,最大化,要在设置前置之前 WindowFormAPI.ShowWindow(weChatForm, 3); WindowFormAPI.SetForegroundWindow(weChatForm); #endregion #region 2.点击搜索栏,粘贴搜索内容,点击最新的一条结果 MouseFlag.MouseLefClickEvent(150, 35, 0); SetClipBordText(this.richTextBox1.Text); ControlKeyBoardClick(Keys.V); MouseFlag.MouseLefClickEvent(150, 100, 0); #endregion #region 3.点击内容框,ctrl+v,回车发送 WindowFormAPI.ClickByLocation(700, 800); SetClipBordText("您的报价是,总计1000元!"); ControlKeyBoardClick(Keys.V); WindowFormAPI.PostMessage(Keys.Enter, 0, 0, 0); WindowFormAPI.PostMessage(Keys.Enter, 0, WindowFormAPI.KEYEVENTF_KEYUP, 0); #endregion }
public static extern void MouseEvent(MouseFlag dwFlags, int dx, int dy, int dwData, UIntPtr dwExtraInfo);
static extern void mouse_event(MouseFlag flags, int dx, int dy, uint data, UIntPtr extra);
/// <summary> /// Inject a mouse event into the event loop, as if the user performed /// it with his mouse. /// </summary> public static void InjectMouseEvent(MouseFlag flags, DoublePoint pt, Int32 data, int extraInfo) { if(MouseAbsolutePos) mouse_event((uint)(flags | MouseFlag.Absolute), (uint)pt.X, (uint)pt.Y, data, (UIntPtr)extraInfo); else mouse_event((uint)flags, (uint)pt.X, (uint)pt.Y, data, (UIntPtr)extraInfo); }
/// <summary> /// Calls the Win32 SendInput method with a ClickDown and ClickUp message in the same input sequence in order to simulate a Key PRESS. /// </summary> /// <param name="clickDown">Click down info</param> /// <param name="clickUp">Click up info</param> /// <param name="mouseData">Additional data.</param> /// <param name="x">X coordinate.</param> /// <param name="y">Y coordinate.</param> public static void SimulateClickPress(MouseFlag clickDown, MouseFlag clickUp, int mouseData, int x = 0, int y = 0) { var down = new Input { Type = (UInt32) InputType.Mouse, Data = { Mouse = new MouseInput { Flags = (uint) clickDown, X = x, Y = y, MouseData = mouseData, Time = 0, ExtraInfo = IntPtr.Zero } } }; var up = new Input { Type = (UInt32) InputType.Mouse, Data = { Mouse = new MouseInput { Flags = (uint) clickUp, X = x, Y = y, MouseData = mouseData, Time = 0, ExtraInfo = IntPtr.Zero } } }; Input[] inputList = new Input[2]; inputList[0] = down; inputList[1] = up; var numberOfSuccessfulSimulatedInputs = SendInput(2, inputList, Marshal.SizeOf(typeof(Input))); if(numberOfSuccessfulSimulatedInputs == 0) throw new Exception(string.Format("The click press simulation for {0} & {1} was not successful.", clickDown, clickUp)); }
/// <summary> /// Calls the Win32 SendInput method with a ClickDown and ClickUp message in the same input sequence in order to simulate a Key PRESS. /// </summary> /// <param name="clickDown">Click down info</param> /// <param name="clickUp">Click up info</param> /// <param name="x">X coordinate.</param> /// <param name="y">Y coordinate.</param> public static void SimulateClickPress(MouseFlag clickDown, MouseFlag clickUp, int x, int y) { SimulateClickPress(clickDown, clickUp, 0, x, y); }
/// <summary> /// Calls the Win32 SendInput method with a ClickDown and ClickUp message in the same input sequence in order to simulate a Key PRESS. /// </summary> /// <param name="clickDown">Click down info</param> /// <param name="clickUp">Click up info</param> public static void SimulateClickPress(MouseFlag clickDown, MouseFlag clickUp) { SimulateClickPress(clickDown, clickUp, 0); }
/// <summary> /// Calls the Win32 SendInput method to simulate a Click. /// </summary> /// <param name="click">Click info</param> /// <param name="x">X coordinate.</param> /// <param name="y">Y coordinate.</param> public static void SimulateClick(MouseFlag click, int x, int y) { SimulateClick(click, 0, x, y); }
private static void FireEvent(MouseFlag flag, int data) { var inputEvent = new Input(); inputEvent.Type = 0; inputEvent.Data.Mouse = new MOUSEINPUT(); inputEvent.Data.Mouse.Flags = (uint)flag; //inputEvent.Data.Mouse.MouseData = (uint)data; inputEvent.Data.Mouse.ExtraInfo = IntPtr.Zero; Input[] inputList = new Input[1]; inputList[0] = inputEvent; var numberOfSuccessfulSimulatedInputs = SendInput(1, inputList, Marshal.SizeOf(typeof(Input))); if (numberOfSuccessfulSimulatedInputs == 0) throw new Exception("The click simulation was not successful."); }
//------------------------------------------------------------------------------------------ private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) //串口接收事件 { textBox1.Clear(); textBox2.Clear(); string str = " "; if (!radioButton3.Checked) { textBox1.AppendText(serialPort1.ReadExisting()); //串口类会自动处理汉字,所以不需要特别转换 } else { byte[] data = new byte[serialPort1.BytesToRead]; //定义缓冲区,因为串口事件触发时有可能收到不止一个字节 serialPort1.Read(data, 0, data.Length); foreach (byte Member in data) //遍历用法 { str = Convert.ToString(Member, 16).ToUpper(); textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " "); } } string control = textBox1.Text; if (control.Length >= 8) { string y_num = control.Substring(0, 3); string anim = control.Substring(3, 1); string shoot = control.Substring(4, 1); string z_num = control.Substring(5, 3); int Y = int.Parse(y_num); int Z = int.Parse(z_num); MouseFlag.Move(((Y - 500)) / 2, (Z - 500) / 30, 0); if (anim == "A") { keybd_event(vbKeyA, 0, 0, 0); } if (anim == "a") { keybd_event(vbKeyA, 0, 2, 0); } if (anim == "S") { keybd_event(vbKeyS, 0, 0, 0); } if (anim == "s") { keybd_event(vbKeyS, 0, 2, 0); } if (anim == "D") { keybd_event(vbKeyD, 0, 0, 0); } if (anim == "d") { keybd_event(vbKeyD, 0, 2, 0); } if (anim == "W") { keybd_event(vbKeyW, 0, 0, 0); } if (anim == "w") { keybd_event(vbKeyW, 0, 2, 0); } if (shoot == "H") { keybd_event(vbKeyH, 0, 0, 0); } if (shoot == "h") { keybd_event(vbKeyH, 0, 2, 0); } if (anim == "J") { keybd_event(vbKeySpace, 0, 0, 0); keybd_event(vbKeySpace, 0, 2, 0); } } textBox1.AppendText(str + '\t'); var path = "0"; try { path = (String)iData.GetData(DataFormats.Text); } catch (Exception ex) { Application.DoEvents(); path = (String)iData.GetData(DataFormats.Text); } textBox2.AppendText(path); num_blue--; if (num_blue == 0) { num_blue = 10; blue_send(); } }