Quiero simular el movimiento del mouse cada x segundos. Para eso, usaré un temporizador (x segundos) y cuando el temporizador haga tictac haré el movimiento del mouse.
Pero, ¿cómo puedo hacer que el cursor del mouse se mueva usando C #?
Quiero simular el movimiento del mouse cada x segundos. Para eso, usaré un temporizador (x segundos) y cuando el temporizador haga tictac haré el movimiento del mouse.
Pero, ¿cómo puedo hacer que el cursor del mouse se mueva usando C #?
Respuestas:
Eche un vistazo a la Cursor.Position
propiedad . Debería ayudarte a empezar.
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
restringirá el movimiento del mouse al tamaño especificado por Location
y Size
. Entonces, el fragmento de arriba solo permitirá que su mouse se mueva dentro del cuadro delimitador de la aplicación.
Cursor.Position
puede requerir una cierta configuración si se usa en una máquina virtual .
Primero agregue una clase llamada 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;
}
}
}
Puedes usarlo entonces así:
Win32.POINT p = new Win32.POINT(xPos, yPos);
Win32.ClientToScreen(this.Handle, ref p);
Win32.SetCursorPos(p.x, p.y);