84 votes

Comment déplacer le curseur de la souris en utilisant C# ?

Je veux simuler le mouvement de la souris toutes les x secondes. Pour cela, j'utiliserai un timer (x secondes) et quand le timer s'activera je ferai le mouvement de la souris.

Mais comment puis-je faire bouger le curseur de la souris en utilisant C# ?

90voto

James Hill Points 27532

Jetez un œil à la propriété Cursor.Position . Cela devrait vous aider à démarrer.

 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);
}

37voto

user3290286 Points 108

Ajoutez d'abord une classe appelée 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;
        }
    }
}

Vous pouvez alors l'utiliser comme ceci :

 Win32.POINT p = new Win32.POINT(xPos, yPos);

Win32.ClientToScreen(this.Handle, ref p);
Win32.SetCursorPos(p.x, p.y);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X