本文只涉及簡單用法,園子中有大神詳細記錄各參數示意。
引用user32.dll(文件在系統C:\Windows\System32中),可模擬鼠標 點擊 事件。
1 [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 2 private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo); 3 [DllImport("user32.dll")] 4 public static extern bool GetCursorPos(out Point pt);//獲取鼠標焦點 5 [DllImport("user32.dll")] 6 public static extern void SetCursorPos(int x, int y);//設置鼠標焦點
注意:每個函數引用都需要DLLImport一次!
const int MOUSEEVENTF_MOVE = 0x0001; //移動鼠標 const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模擬鼠標左鍵按下 const int MOUSEEVENTF_LEFTUP = 0x0004; //模擬鼠標左鍵抬起 const int MOUSEEVENTF_RIGHTDOWN = 0x0008; //模擬鼠標右鍵按下 const int MOUSEEVENTF_RIGHTUP = 0x0010; //模擬鼠標右鍵抬起 const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; //模擬鼠標中鍵按下 const int MOUSEEVENTF_MIDDLEUP = 0x0040; //模擬鼠標中鍵抬起 const int MOUSEEVENTF_ABSOLUTE = 0x8000; //標示是否采用絕對坐標
mouse_event()使用實例:
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);//Cursor.Position.X, Cursor.Position.Y指示鼠標所在絕對位置 mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 800, 450, 0, 0);//(800*450)鼠標左鍵點擊屏幕中央
絕對位置表示相對於屏幕左上角的坐標,即左上角坐標為(0,0)。
獲取與設置焦點:
Point p; GetCursorPos(out p); SetCursorPos(400, 450);