private void scroll(Int32 x) { for (var i = 0; i != x; i += (x < 0 ? -1 : 1)) { var input = new WinUser.INPUT { type = WinUser.INPUT_MOUSE, data = new WinUser.MOUSEKEYBDHARDWAREINPUT { mi = new WinUser.MOUSEINPUT { dwFlags = WinUser.MOUSEEVENTF_WHEEL, mouseData = (x < 0 ? -120 : 120) } } }; this.sendInput(input); } }
/* * private void type() { * var input = new WinUser.INPUT { * type = WinUser.INPUT_KEYBOARD, * data = new WinUser.MOUSEKEYBDHARDWAREINPUT { * ki = new WinUser.KEYBDINPUT() * } * }; * input.data.ki.wVk = 0x41; * this.sendInput(input); * input.data.ki.dwFlags = WinUser.KEYEVENTF_KEYUP; * this.sendInput(input); * input.data.ki.dwFlags = 0; * input.data.ki.wVk = 0x42; * this.sendInput(input, 1000); * input.data.ki.dwFlags = WinUser.KEYEVENTF_KEYUP; * this.sendInput(input); * } */ private void click(Int32 x, Int32 y) { var bounds = Screen.PrimaryScreen.Bounds; x = x * 65535 / bounds.Width; y = y * 65535 / bounds.Height; var input = new WinUser.INPUT { type = WinUser.INPUT_MOUSE, data = new WinUser.MOUSEKEYBDHARDWAREINPUT { mi = new WinUser.MOUSEINPUT { dx = x, dy = y, dwFlags = WinUser.MOUSEEVENTF_ABSOLUTE | WinUser.MOUSEEVENTF_MOVE } } }; this.sendInput(input); input.data.mi.dwFlags = WinUser.MOUSEEVENTF_LEFTDOWN; this.sendInput(input); input.data.mi.dwFlags = WinUser.MOUSEEVENTF_LEFTUP; this.sendInput(input); }
private void drag(Int32 fromX, Int32 fromY, Int32 toX, Int32 toY, Double speed) { var bounds = Screen.PrimaryScreen.Bounds; fromX *= 65535 / bounds.Width; fromY *= 65535 / bounds.Height; toX *= 65535 / bounds.Width; toY *= 65535 / bounds.Height; speed = speed > 1 ? 1 : speed; speed = speed < 0.001 ? 0.001 : speed; var stepX = (toX - fromX) * speed; var stepY = (toY - fromY) * speed; var input = new WinUser.INPUT { type = WinUser.INPUT_MOUSE, data = new WinUser.MOUSEKEYBDHARDWAREINPUT { mi = new WinUser.MOUSEINPUT { dx = fromX, dy = fromY, dwFlags = WinUser.MOUSEEVENTF_ABSOLUTE | WinUser.MOUSEEVENTF_MOVE } } }; this.sendInput(input); input.data.mi.dwFlags = WinUser.MOUSEEVENTF_LEFTDOWN; this.sendInput(input); input.data.mi.dwFlags = WinUser.MOUSEEVENTF_ABSOLUTE | WinUser.MOUSEEVENTF_MOVE; for (var i = 1; i <= 1 / speed; i += 1) { input.data.mi.dx = Convert.ToInt32(fromX + (stepX * i)); input.data.mi.dy = Convert.ToInt32(fromY + (stepY * i)); this.sendInput(input); } input.data.mi.dwFlags = WinUser.MOUSEEVENTF_LEFTUP; this.sendInput(input); }
private void sendInput(WinUser.INPUT input, Int32 delay = 50) { System.Threading.Thread.Sleep(delay); WinUser.SendInput(1, new [] { input }, Marshal.SizeOf(typeof(WinUser.INPUT))); }