MouseMove

Verschiebt den Mauszeiger.

MouseMove, X, Y , Tempo, Relativ

Parameter

X, Y

Die X/Y-Koordinaten der Position, auf die der Mauszeiger bewegt werden soll. Diese Parameter können Ausdrücke sein. Koordinaten sind relativ zum aktiven Fenster, sofern das nicht mit CoordMode geändert wurde.

Tempo

Wie schnell der Mauszeiger bewegt werden soll, von 0 (schnell) bis 100 (langsam). Dieser Parameter kann ein Ausdruck sein.

Hinweis: Ein Tempo von 0 bewegt den Mauszeiger sofort auf die neue Position.

Fehlt dieser Parameter, wird das voreingestellte Tempo von SetDefaultMouseSpeed verwendet (oder 2, wenn die Direktive nicht vorhanden ist).

Tempo wird bei den Methoden SendInput und SendPlay ignoriert; sie positionieren den Mauszeiger sofort auf die neuen Koordinaten (allerdings hat SetMouseDelay einen Modus, der für SendPlay verwendet werden kann). Um den Mauszeiger visuell langsamer zu bewegen (z. B. um einem Publikum etwas vorzuführen), nutzt man SendEvent {Click 100, 200} oder SendMode Event (optional in Verbindung mit BlockInput).

Relativ

Fehlt dieser Parameter, werden die X- und Y-Koordinaten als absolute Werte behandelt. Um dieses Verhalten zu ändern, gibt man den folgenden Buchstaben an:

R: Die X- und Y-Koordinaten werden als Offsets von der aktuellen Mausposition behandelt. Das heißt, dass der Zeiger von seiner aktuellen Position um X Pixel nach rechts (nach links, wenn negativ) und um Y Pixel nach unten (nach oben, wenn negativ) verschoben wird.

Bemerkungen

Dieser Befehl verwendet die gesetzte Sendemethode von SendMode.

Der SendPlay-Modus ist im Gegensatz zu den anderen Methoden erfolgreicher darin, Mausereignisse in Spielen zu erzeugen. Beachten Sie außerdem, dass einige Anwendungen und Spiele eventuell Schwierigkeiten haben, den Mauszeiger zu folgen, wenn er zu schnell bewegt wird. Mit dem Tempo-Parameter oder SetDefaultMouseSpeed kann die Geschwindigkeit reduziert werden (nur im voreingestellten SendEvent-Modus).

Der BlockInput-Befehl kann genutzt werden, um zu verhindern, dass physische Mausaktivitäten des Benutzers die künstlich erzeugten Mausereignisse stören. Allerdings ist das bei den Methoden SendInput und SendPlay nicht notwendig, weil sie die physischen Mausaktivitäten des Benutzers automatisch nach hinten verschieben.

Nach jeder Mausbewegung erfolgt eine Verzögerung (außer beim SendInput-Modus). Mit SetMouseDelay kann die Verzögerungsdauer geändert werden.

Das folgende Beispiel zeigt eine alternative Methode zum Verschieben des Mauszeigers, die bei bestimmten Multi-Bildschirm-Konfigurationen besser funktionieren könnte:

DllCall("SetCursorPos", "int", 100, "int", 400)  ; Die erste Nummer ist X und die zweite Y (relativ zum Bildschirm).

Beachten Sie zudem, dass der Mauszeiger vorübergehend versteckt werden kann - siehe dazu das DllCall-Beispiel.

Siehe auch

CoordMode, SendMode, SetDefaultMouseSpeed, SetMouseDelay, Click, MouseClick, MouseClickDrag, MouseGetPos, BlockInput

Beispiel

; Verschiebt den Mauszeiger auf eine neue Position:
MouseMove, 200, 100

; Verschiebt den Mauszeiger von seiner aktuellen Position langsam (mit einem Tempo von 50 statt 2)
; 20 Pixel nach rechts und 30 Pixel nach unten:
MouseMove, 20, 30, 50, R