[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, UIntPtr dwExtraInfo);
private const uint MOUSEEVENTF_LEFTDOWN = 0x02;
private const uint MOUSEEVENTF_LEFTUP = 0x04;
private const uint MOUSEEVENTF_RIGHTDOWN = 0x08;
private const uint MOUSEEVENTF_RIGHTUP = 0x10;
Bạn nên nhập khẩu và Xác định các hằng số để làm việc với Chuột sử dụng Win32API
Sử dụng phương pháp là dưới đây để làm Chuột hoạt động của
void sendMouseRightclick(Point p)
{
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, p.X, p.Y, 0, 0);
}
void sendMouseDoubleClick(Point p)
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, p.X, p.Y, 0, 0);
Thread.Sleep(150);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, p.X, p.Y, 0, 0);
}
void sendMouseRightDoubleClick(Point p)
{
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, p.X, p.Y, 0, 0);
Thread.Sleep(150);
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, p.X, p.Y, 0, 0);
}
void sendMouseDown()
{
mouse_event(MOUSEEVENTF_LEFTDOWN, 50, 50, 0, 0);
}
void sendMouseUp()
{
mouse_event(MOUSEEVENTF_LEFTUP, 50, 50, 0, 0);
}
Nếu bạn muốn làm một Kéo chuột bạn nên đầu tiên Gửi MouseDown (Mouse Click) và giữ nó Clicked trong khi thay đổi vị trí chuột hơn Gửi MouseUp (Release Click) một cái gì đó như thế này.
sendMouseDown();
Cursor.Position = new Point(30,30);
sendMouseUp();
Một chủ đề bạn có thể quan tâm là [UI Automation trong .NET] (http://msdn.microsoft.com/en -us/library/ms753326 (v = vs.110) .aspx). - Ngoài ra, hãy ghi nhớ, các vị trí X & Y đó nằm trong tọa độ màn hình vật lý (chỉ giống như logic cho 96 DPI - nhưng đối với các DPI khác thì không - hầu hết .NET Framework đều sử dụng tọa độ logic cho tất cả). – BrainSlugs83