Chcę symulować ruch myszy co x sekund. W tym celu użyję licznika czasu (x sekund), a kiedy zegar tyka, wykonam ruch myszy.
Ale jak mogę przesuwać kursor myszy za pomocą C #?
c#
mouse-cursor
aF.
źródło
źródło
Odpowiedzi:
Spójrz na
Cursor.Position
nieruchomość . To powinno zacząć.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); }
źródło
Cursor.Clip
ograniczy ruch myszy do rozmiaru określonego przezLocation
iSize
. Tak więc powyższy fragment pozwoli twojej myszy poruszać się tylko w obwiedni aplikacji.Cursor.Position
może wymagać określonego ustawienia, jeśli jest używany na maszynie wirtualnej .Najpierw dodaj klasę o nazwie 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; } } }
Możesz go wtedy użyć w ten sposób:
Win32.POINT p = new Win32.POINT(xPos, yPos); Win32.ClientToScreen(this.Handle, ref p); Win32.SetCursorPos(p.x, p.y);
źródło