x 초마다 마우스 움직임을 시뮬레이션하고 싶습니다. 이를 위해 타이머 (x 초)를 사용하고 타이머가 틱되면 마우스를 움직입니다.
그러나 C #을 사용하여 마우스 커서를 이동하려면 어떻게해야합니까?
x 초마다 마우스 움직임을 시뮬레이션하고 싶습니다. 이를 위해 타이머 (x 초)를 사용하고 타이머가 틱되면 마우스를 움직입니다.
그러나 C #을 사용하여 마우스 커서를 이동하려면 어떻게해야합니까?
답변:
Cursor.Position
속성을 살펴보십시오 . 시작해야합니다.
private void MoveCursor()
{
// Set the Current cursor, move the cursor's Position,
// and set its clipping rectangle to the form.
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
Cursor.Clip = new Rectangle(this.Location, this.Size);
}
Cursor.Clip
마우스의 움직임을 Location
및로 지정된 크기로 제한합니다 Size
. 따라서 위의 스 니펫은 응용 프로그램의 경계 상자 내에서만 마우스를 이동할 수 있도록합니다.
먼저 Win32.cs라는 클래스를 추가합니다.
public class Win32
{
[DllImport("User32.Dll")]
public static extern long SetCursorPos(int x, int y);
[DllImport("User32.Dll")]
public static extern bool ClientToScreen(IntPtr hWnd, ref POINT point);
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int x;
public int y;
public POINT(int X, int Y)
{
x = X;
y = Y;
}
}
}
다음과 같이 사용할 수 있습니다.
Win32.POINT p = new Win32.POINT(xPos, yPos);
Win32.ClientToScreen(this.Handle, ref p);
Win32.SetCursorPos(p.x, p.y);