MouseClickDrag

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

Parameter

WelcheTaste

Die zu klickende Taste: Left, Right, Middle (oder jeweils nur der erste Buchstabe) oder X1 (vierte Maustaste) oder X2 (fünfte Maustaste). Zum Beispiel: MouseClickDrag, X1, 0, 0, 10, 10.

Wenn der Benutzer die primäre und sekundäre Maustaste über die Systemsteuerung vertauscht hat, ist es ratsam, stattdessen den Click-Befehl zu verwenden, da er diese Vertauschung kompensieren kann.

X1, Y1

Wenn leer oder weggelassen, wird die aktuelle Position des Mauszeigers verwendet. Andernfalls geben Sie die X- und Y-Koordinate der Position an, von der aus das Ziehen gestartet werden soll (der Mauszeiger wird vor dem Ziehen auf diese Position bewegt). Können Ausdrücke sein. Standardmäßig sind Koordinaten relativ zum aktiven Fenster, was aber mit CoordMode geändert werden kann.

X2, Y2

Die X- und Y-Koordinate der Position, auf die der Mauszeiger bewegt werden soll, während die Maustaste gedrückt gehalten wird. Können Ausdrücke sein. Standardmäßig sind Koordinaten relativ zum aktiven Fenster, was aber mit CoordMode geändert werden kann.

Geschw

Wenn leer oder weggelassen, wird die Standardgeschwindigkeit verwendet (definiert durch SetDefaultMouseSpeed oder standardmäßig 2). Andernfalls geben Sie an, wie schnell der Mauszeiger bewegt werden soll, von 0 (schnell) bis 100 (langsam). Kann ein Ausdruck sein. Eine Geschwindigkeit von 0 bewegt den Mauszeiger sofort auf die neue Position.

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).

Relativ

Wenn leer oder weggelassen, werden die X- und Y-Koordinate für die absolute Positionierung verwendet. Andernfalls geben Sie den folgenden Buchstaben an:

R: Die X1- und Y1-Koordinate werden als Offsets von der aktuellen Mausposition behandelt. Mit anderen Worten, der Mauszeiger wird von seiner aktuellen Position aus um X1 Pixel nach rechts (nach links, wenn negativ) und um Y1 Pixel nach unten (nach oben, wenn negativ) bewegt. Entsprechend werden die X2- und Y2-Koordinate als Offsets von den Koordinaten X1 und Y1 behandelt. Zum Beispiel würde das Folgende den Mauszeiger von seiner Startposition aus um 5 Pixel nach unten und nach rechts bewegen und dann von dieser Position aus um 10 Pixel nach unten und nach rechts ziehen: MouseClickDrag, Left, 5, 5, 10, 10, , R.

Bemerkungen

Dieser Befehl verwendet den via SendMode gesetzten Send-Modus.

Das Ziehen des Mauszeigers kann auch mit verschiedenen Send-Befehlen durchgeführt werden, was flexibler ist, da 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 automatisch die Vertauschung der linken und rechten Maustaste über die Systemsteuerung kompensieren kann.

Der SendPlay-Modus ist im Gegensatz zu den anderen Modi erfolgreicher darin, Mausereignisse in Videospielen zu erzeugen. Allerdings funktioniert das Ziehen via SendPlay möglicherweise nicht in RichEdit-Steuerelementen wie z.B. WordPad und Metapad.

Einige Anwendungen und Videospiele können Schwierigkeiten haben, dem Mauszeiger zu folgen, wenn er zu schnell bewegt wird. Mit dem Geschw-Parameter oder SetDefaultMouseSpeed kann die Geschwindigkeit reduziert werden (nur im standardmäßig aktiven SendEvent-Modus).

Der BlockInput-Befehl kann verwendet 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 hinauszögern.

Nach jedem DOWN- und UP-Ereignis der Maus erfolgt automatisch eine Verzögerung (außer im SendInput-Modus). Diese Verzögerung tritt auch nach dem Bewegen des Mauszeigers während des Ziehens auf. Mit SetMouseDelay kann die Verzögerungsdauer geändert werden.

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

Beispiele

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 Häuschen. In Windows 7 und höher kann es aufgrund von Änderungen an der Benutzeroberfläche vorkommen, dass dieses Beispiel nicht wie erwartet funktioniert.

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