[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;
당신은 가져 오기 및 Win32API
를 사용하여 마우스와 함께 작동하도록 이러한 상수의 정의해야
사용 방법을 수행하는 아래의 마우스 조작의
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);
}
당신은 당신이 먼저 보내기해야 마우스 드래그를 수행하려는 경우 MouseDown (마우스 클릭) 및 MouseUp (릴리스 클릭)보다 마우스 위치를 변경하는 동안 클릭 한 상태로 유지합니다.
sendMouseDown();
Cursor.Position = new Point(30,30);
sendMouseUp();
에 관심이있을 수있는 주제는 [.NET에서 UI 자동화가 (이다 http://msdn.microsoft.com/en -us/library/ms753326 (v = vs.110) .aspx). - 또한 X 및 Y 위치는 물리적 화면 좌표 (96 DPI의 경우 Logical과 동일하지만 다른 DPI의 경우는 그렇지 않음)에 있음을 유의하십시오. 대부분의 .NET Framework는 논리적 좌표 모두를위한). – BrainSlugs83