Klickt und hält eine bestimmte Maustaste gedrückt, bewegt den Mauszeiger auf die Zielkoordinaten und lässt die Taste dann wieder los.
MouseClickDrag, WelcheTaste, X1, Y1, X2, Y2 , Geschw, Relativ
Die zu klickende Taste: Left (Standard), Right, Middle (oder jeweils nur der erste Buchstabe). Geben Sie X1 für die vierte Maustaste und X2 für die fünfte Maustaste an. Zum Beispiel: MouseClickDrag, X1, ...
.
Falls der Benutzer die primäre und sekundäre Maustaste via Systemsteuerung vertauscht hat, ist es ratsam, stattdessen den Click-Befehl zu nutzen, da er diesen Sachverhalt ausgleichen kann.
Die X- und Y-Koordinate der Position, von wo aus der Ziehvorgang begonnen werden soll (der Mauszeiger wird auf diese Position verschoben, bevor der Ziehvorgang begonnen wird). Diese Parameter können Ausdrücke sein. Standardmäßig sind Koordinaten relativ zum aktiven Fenster, was aber mit CoordMode geändert werden kann. Lässt man diese weg, wird stattdessen die aktuelle Position des Mauszeigers verwendet.
Die X- und Y-Koordinate der Position, auf die der Mauszeiger gezogen werden soll (während die Maustaste gedrückt gehalten wird). Diese Parameter können Ausdrücke sein. Standardmäßig sind Koordinaten relativ zum aktiven Fenster, was aber mit CoordMode geändert werden kann.
Wie schnell der Mauszeiger bewegt werden soll, von 0 (schnell) bis 100 (langsam). Dieser Parameter kann ein Ausdruck sein.
Hinweis: Eine Geschwindigkeit von 0 bewegt den Mauszeiger sofort auf die neue Position.
Lässt man diesen Parameter weg, wird die Standardgeschwindigkeit verwendet (die via SetDefaultMouseSpeed definiert ist oder standardmäßig 2).
Geschw wird bei den Modi 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), verwenden Sie SendEvent {Click 100 200}
oder SendMode Event
(optional in Verbindung mit BlockInput).
Lässt man diesen Parameter weg, werden die X- und Y-Koordinate als absolute Werte behandelt. Um dieses Verhalten zu ändern, geben Sie den folgenden Buchstaben an:
R: Die X1- und Y1-Koordinate werden als Offsets von der aktuellen Mausposition behandelt. Das heißt, dass der Zeiger von seiner aktuellen Position um X1 Pixel nach rechts (nach links, wenn negativ) und um Y1 Pixel nach unten (nach oben, wenn negativ) verschoben wird. Ebenso werden die X2- und Y2-Koordinate als Offsets von den Koordinaten X1 und Y1 behandelt. Das folgende Beispiel zeigt, wie der Mauszeiger von seiner Startposition 5 Pixel nach unten und nach rechts, und dann im gedrückten Zustand 10 Pixel nach unten und nach rechts verschoben werden kann: MouseClickDrag, Left, 5, 5, 10, 10, , R
.
Dieser Befehl verwendet den via SendMode gesetzten Send-Modus.
Das Ziehen des Mauszeigers kann auch mit verschiedenen Send-Befehlen durchgeführt werden - dies ist flexibler, weil der Modus über den Befehlsnamen angegeben werden kann. Zum Beispiel:
SendEvent {Click 6 52 Down}{Click 45 52 Up}
Ein weiterer Vorteil von dieser Methode ist, dass sie im Gegensatz zu MouseClickDrag die linke und rechte Maustaste ausgleicht, falls der Benutzer sie via Systemsteuerung vertauscht hat.
Der SendPlay-Modus ist im Gegensatz zu den anderen Modi erfolgreicher darin, Mausereignisse in Videospielen zu erzeugen. Allerdings kann es sein, dass das Ziehen des Mauszeigers via SendPlay bei RichEdit-Steuerelementen wie WordPad und Metapad (und möglicherweise andere) nicht funktioniert.
Beachten Sie außerdem, dass einige Anwendungen und Videospiele eventuell Schwierigkeiten haben, den Mauszeiger zu folgen, wenn er sich zu schnell bewegt. Mit dem Geschw-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 Modi SendInput und SendPlay nicht notwendig, weil sie die physischen Mausaktivitäten des Benutzers automatisch nach hinten verschieben.
Nach jedem DOWN- und UP-Ereignis der Maus erfolgt automatisch eine Verzögerung (außer beim SendInput-Modus). Diese Verzögerung erfolgt auch nach dem Verschieben des Mauszeigers während des Ziehvorgangs. Mit SetMouseDelay kann die Verzögerungsdauer geändert werden.
CoordMode, SendMode, SetDefaultMouseSpeed, SetMouseDelay, Click, MouseClick, MouseGetPos, MouseMove, BlockInput
Klickt und hält die linke Maustaste gedrückt, bewegt den Mauszeiger auf die Zielkoordinaten und lässt die Taste dann wieder los.
MouseClickDrag, left, 0, 200, 600, 400
Öffnet MS Paint und zeichnet ein kleines Haus.
Run, mspaint.exe WinWaitActive, ahk_class MSPaintApp,, 2 if ErrorLevel return MouseClickDrag, L, 150, 250, 150, 150 MouseClickDrag, L, 150, 150, 200, 100 MouseClickDrag, L, 200, 100, 250, 150 MouseClickDrag, L, 250, 150, 150, 150 MouseClickDrag, L, 150, 150, 250, 250 MouseClickDrag, L, 250, 250, 250, 150 MouseClickDrag, L, 250, 150, 150, 250 MouseClickDrag, L, 150, 250, 250, 250