2011年5月23日 星期一

C#控制滑鼠移動

在C++中,可以使用SetCursorPos以及mouse_event來操作滑鼠移動。
在C#中使用這兩個函式,需要一些小修改。

首先宣告:
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;
使用的時候如下:
按一下左鍵(我不知道為什麼要呼叫四次mouse_event)
mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y , 0,0);
mouse_event(MOUSEEVENTF_LEFTUP, X, Y , 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y , 0,0);
mouse_event(MOUSEEVENTF_LEFTUP, X, Y , 0, 0);
將滑鼠移動到某個點:
SetCursorPos(X, Y);

沒有留言:

張貼留言