1、c#调用API控制鼠标移动单击双击以及滚轮的公共类c# 调用API控制鼠标移动单击双击以及滚轮的公共类using System; using System.Text; using System.Runtime.InteropServices; using System.Drawing; using System.Windows.Forms; namespace KeyboardHook / / Mouse buttons that can be pressed / public enum MouseButton Left = 0x2, Right = 0x8, Middle = 0x20 /
2、/ Operations that simulate mouse events / public static class MouseSimulator #region Windows API Code DllImport(user32.dll) static extern int ShowCursor(bool show); DllImport(User32) public extern static void SetCursorPos(int x, int y); DllImport(user32.dll) static extern void mouse_event(int flags,
3、 int dX, int dY, int buttons, int extraInfo); DllImport(user32.dll) static extern void PostMessage(IntPtr hWnd, int Msg, int wParam, uint lParam); const int MOUSEEVENTF_MOVE = 0x1; const int MOUSEEVENTF_LEFTDOWN = 0x2; const int MOUSEEVENTF_LEFTUP = 0x4; const int MOUSEEVENTF_RIGHTDOWN = 0x8; const
4、int MOUSEEVENTF_RIGHTUP = 0x10; const int MOUSEEVENTF_MIDDLEDOWN = 0x20; const int MOUSEEVENTF_MIDDLEUP = 0x40; const int MOUSEEVENTF_WHEEL = 0x800; const int MOUSEEVENTF_ABSOLUTE = 0x8000; const int WM_MOUSEMOVE = 0x200; const int WM_LBUTTONDOWN = 0x201; const int WM_RBUTTONDOWN = 0x204; const int
5、WM_MBUTTONDOWN = 0x207; const int WM_LBUTTONUP = 0x202; const int WM_RBUTTONUP = 0x205; const int WM_MBUTTONUP = 0x208; #endregion #region Properties / / Gets or sets a structure that represents both X and Y mouse coordinates / public static Point Position get return new Point(Cursor.Position.X, Cur
6、sor.Position.Y); set Cursor.Position = value; / / Gets or sets only the mouses x coordinate / public static int X get return Cursor.Position.X; set Cursor.Position = new Point(value, Y); / / Gets or sets only the mouses y coordinate / public static int Y get return Cursor.Position.Y; set Cursor.Posi
7、tion = new Point(X, value); #endregion #region Methods / / Press a mouse button down / / public static void MouseDown(MouseButton button) mouse_event(int)button), 0, 0, 0, 0); public static void MouseDown(IntPtr hWnd, MouseButton button,int x,int y) switch (button) case MouseButton.Left: PostMessage
8、(hWnd, WM_LBUTTONDOWN,1 ,Convert.ToUInt32( (x + (y 16); break; case MouseButton.Right: PostMessage(hWnd, WM_RBUTTONDOWN, 1, Convert.ToUInt32(x + (y 16); break; case MouseButton.Middle: PostMessage(hWnd, WM_MBUTTONDOWN, 1, Convert.ToUInt32(x + (y 16); break; / / Let a mouse button up / / public stati
9、c void MouseUp(MouseButton button) mouse_event(int)button) * 2, 0, 0, 0, 0); public static void MouseUp(IntPtr hWnd, MouseButton button, int x, int y) switch (button) case MouseButton.Left: PostMessage(hWnd, WM_LBUTTONUP, 0, Convert.ToUInt32(x + (y 16); break; case MouseButton.Right: PostMessage(hWn
10、d, WM_RBUTTONUP, 0, Convert.ToUInt32(x + (y 16); break; case MouseButton.Middle: PostMessage(hWnd, WM_MBUTTONUP, 0, Convert.ToUInt32(x + (y 16); break; / / Click a mouse button (down then up) / / public static void Click(MouseButton button) MouseDown(button); MouseUp(button); public static void Clic
11、k(IntPtr hWnd, MouseButton button,int x,int y) MouseDown(hWnd, button, x, y); MouseUp(hWnd, button, x, y); / / Double click a mouse button (down then up twice) / / public static void DoubleClick(MouseButton button) Click(button); Click(button); public static void DoubleClick(IntPtr hWnd, MouseButton
12、 button, int x, int y) Click(hWnd, button, x, y); Click(hWnd, button, x, y); / / Roll the mouse wheel. Delta of 120 wheels up once normally, -120 wheels down once normally / / public static void MouseWheel(int delta) mouse_event(MOUSEEVENTF_WHEEL, 0, 0, delta, 0); / / Show a hidden current on curren
13、tly application / public static void Show() ShowCursor(true); / / Hide mouse cursor only on current applications forms / public static void Hide() ShowCursor(false); / / Press a mouse button down / / public static void MouseDown(MouseButtons button) switch (button) case MouseButtons.Left: MouseDown(
14、MouseButton.Left); break; case MouseButtons.Middle: MouseDown(MouseButton.Middle); break; case MouseButtons.Right: MouseDown(MouseButton.Right); break; / / Let a mouse button up / / public static void MouseUp(MouseButtons button) switch (button) case MouseButtons.Left: MouseUp(MouseButton.Left); bre
15、ak; case MouseButtons.Middle: MouseUp(MouseButton.Middle); break; case MouseButtons.Right: MouseUp(MouseButton.Right); break; / / Click a mouse button (down then up) / / public static void Click(MouseButtons button) switch (button) case MouseButtons.Left: Click(MouseButton.Left); break; case MouseBu
16、ttons.Middle: Click(MouseButton.Middle); break; case MouseButtons.Right: Click(MouseButton.Right); break; / / Double click a mouse button (down then up twice) / / public static void DoubleClick(MouseButtons button) switch (button) case MouseButtons.Left: DoubleClick(MouseButton.Left); break; case MouseButtons.Middle: DoubleClick(MouseButton.Middle); break; case MouseButtons.Right: DoubleClick(MouseButton.Right); break; #endregion
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1