首先要用到的引用有
[DllImport("User32")] public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo); [DllImport("User32")] public extern static void SetCursorPos(int x, int y);
1、SetCursorPos:用於設置鼠標的坐標。與它對應的當然就是GetCursorPos啦!
2、mouse_event:這個事件是用於模仿鼠標的各種操作(單擊、雙擊....),視輸入參數的不同而定了。
=============================================================================================
下面是完整的代碼:
[DllImport("User32")] public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo); [DllImport("User32")] public extern static void SetCursorPos(int x, int y); [DllImport("User32")] public extern static bool GetCursorPos(out POINT p); [StructLayout(LayoutKind.Sequential)] public struct POINT { public int X; public int Y; } public enum MouseEventFlags { Move = 0x0001, //移動鼠標 LeftDown = 0x0002,//模擬鼠標左鍵按下 LeftUp = 0x0004,//模擬鼠標左鍵抬起 RightDown = 0x0008,//鼠標右鍵按下 RightUp = 0x0010,//鼠標右鍵抬起 MiddleDown = 0x0020,//鼠標中鍵按下 MiddleUp = 0x0040,//中鍵抬起 Wheel = 0x0800, Absolute = 0x8000//標示是否采用絕對坐標 } private void button1_Click(object sender, EventArgs e) { // POINT p = new POINT(); // GetCursorPos(out p); // MessageBox.Show(p.X.ToString()+":"+p.Y.ToString()); AutoClick(); } public static void AutoClick() { while (true) { //設置鼠標的坐標 SetCursorPos(72, 40); //這里模擬的是一個鼠標雙擊事件 mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero); mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero); mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero); mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero); } }