Tôi muốn mô phỏng chuyển động của chuột mỗi x giây. Đối với điều đó, tôi sẽ sử dụng bộ đếm thời gian (x giây) và khi bộ đếm thời gian tích tắc, tôi sẽ thực hiện chuyển động chuột.
Nhưng, làm cách nào để làm cho con trỏ chuột di chuyển bằng C #?
Tôi muốn mô phỏng chuyển động của chuột mỗi x giây. Đối với điều đó, tôi sẽ sử dụng bộ đếm thời gian (x giây) và khi bộ đếm thời gian tích tắc, tôi sẽ thực hiện chuyển động chuột.
Nhưng, làm cách nào để làm cho con trỏ chuột di chuyển bằng C #?
Câu trả lời:
Hãy xem Cursor.Position
Tài sản . Nó sẽ giúp bạn bắt đầu.
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
sẽ hạn chế chuyển động của chuột ở kích thước được chỉ định bởi Location
và Size
. Vì vậy, đoạn mã trên sẽ chỉ cho phép chuột của bạn di chuyển trong hộp giới hạn của ứng dụng.
Đầu tiên, hãy thêm một lớp có tên 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;
}
}
}
Bạn có thể sử dụng nó sau đó như thế này:
Win32.POINT p = new Win32.POINT(xPos, yPos);
Win32.ClientToScreen(this.Handle, ref p);
Win32.SetCursorPos(p.x, p.y);