/// <summary> /// Simulates mouse left click at the indicated /// by doing a mouse down followed by a mouse up /// </summary> /// <param name="x">x position of cursor</param> /// <param name="y">y position of the cursor</param> public static void ClickLeftMouseButton(int x, int y) { float screenWidth = Screen.PrimaryScreen.Bounds.Width; float screenHeight = Screen.PrimaryScreen.Bounds.Height; var mouseInput = new User32Interop.INPUT { type = User32Interop.SendInputEventType.InputMouse }; //mouseInput.mkhi.mi.dx = x; //mouseInput.mkhi.mi.dy = y; mouseInput.mkhi.mi.dx = (int)Math.Round(x * (65535 / screenWidth), 0); mouseInput.mkhi.mi.dy = (int)Math.Round(y * (65535 / screenHeight), 0); mouseInput.mkhi.mi.mouseData = 0; mouseInput.mkhi.mi.dwFlags = User32Interop.MouseEventFlags.MOUSEEVENTF_MOVE | User32Interop.MouseEventFlags.MOUSEEVENTF_ABSOLUTE; User32Interop.SendInput(1, ref mouseInput, Marshal.SizeOf(new User32Interop.INPUT())); var inputDown = new User32Interop.INPUT(); inputDown.mkhi.mi.dx = 0; inputDown.mkhi.mi.dy = 0; inputDown.mkhi.mi.mouseData = 0; inputDown.mkhi.mi.dwFlags = User32Interop.MouseEventFlags.MOUSEEVENTF_LEFTDOWN; User32Interop.SendInput(1, ref inputDown, Marshal.SizeOf(new User32Interop.INPUT())); inputDown.mkhi.mi.dwFlags = User32Interop.MouseEventFlags.MOUSEEVENTF_LEFTUP; User32Interop.SendInput(1, ref inputDown, Marshal.SizeOf(new User32Interop.INPUT())); }
/// <summary> /// Simulates mouse left click at the indicated /// by doing a mouse down followed by a mouse up /// </summary> /// <param name="x">x position of cursor</param> /// <param name="y">y position of the cursor</param> public static void ClickLeftMouseButton(int x, int y) { float screenWidth = Screen.PrimaryScreen.Bounds.Width; float screenHeight = Screen.PrimaryScreen.Bounds.Height; var mouseInput = new User32Interop.INPUT { type = User32Interop.SendInputEventType.InputMouse }; //mouseInput.mkhi.mi.dx = x; //mouseInput.mkhi.mi.dy = y; mouseInput.mkhi.mi.dx = (int)Math.Round(x * (65535 / screenWidth), 0); mouseInput.mkhi.mi.dy = (int)Math.Round(y * (65535 / screenHeight), 0); mouseInput.mkhi.mi.mouseData = 0; mouseInput.mkhi.mi.dwFlags = User32Interop.MouseEventFlags.MOUSEEVENTF_MOVE | User32Interop.MouseEventFlags.MOUSEEVENTF_ABSOLUTE; User32Interop.SendInput(1, ref mouseInput, Marshal.SizeOf(new User32Interop.INPUT())); var inputDown = new User32Interop.INPUT(); inputDown.mkhi.mi.dx = 0; inputDown.mkhi.mi.dy = 0; inputDown.mkhi.mi.mouseData = 0; inputDown.mkhi.mi.dwFlags = User32Interop.MouseEventFlags.MOUSEEVENTF_LEFTDOWN; User32Interop.SendInput(1, ref inputDown, Marshal.SizeOf(new User32Interop.INPUT())); inputDown.mkhi.mi.dwFlags = User32Interop.MouseEventFlags.MOUSEEVENTF_LEFTUP; User32Interop.SendInput(1, ref inputDown, Marshal.SizeOf(new User32Interop.INPUT())); }