Ich möchte alle x Sekunden eine Mausbewegung simulieren. Dafür verwende ich einen Timer (x Sekunden) und wenn der Timer tickt, mache ich die Mausbewegung.
Aber wie kann ich den Mauszeiger mit C # bewegen?
Ich möchte alle x Sekunden eine Mausbewegung simulieren. Dafür verwende ich einen Timer (x Sekunden) und wenn der Timer tickt, mache ich die Mausbewegung.
Aber wie kann ich den Mauszeiger mit C # bewegen?
Antworten:
Schauen Sie sich die Cursor.Position
Immobilie an . Es sollte Ihnen den Einstieg erleichtern.
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
beschränkt die Bewegung Ihrer Maus auf die durch Location
und angegebene Größe Size
. Mit dem obigen Snippet kann sich Ihre Maus also nur innerhalb des Begrenzungsrahmens der Anwendung bewegen.
Cursor.Position
Möglicherweise ist eine bestimmte Einstellung erforderlich, wenn sie in einer virtuellen Maschine verwendet wird .
Fügen Sie zuerst eine Klasse mit dem Namen Win32.cs hinzu
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;
}
}
}
Sie können es dann so verwenden:
Win32.POINT p = new Win32.POINT(xPos, yPos);
Win32.ClientToScreen(this.Handle, ref p);
Win32.SetCursorPos(p.x, p.y);