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

Typ: Zeichenkette

Wenn leer oder weggelassen, wird standardmäßig Left verwendet (die linke Maustaste). Andernfalls geben Sie Left, Right, Middle (oder jeweils nur den ersten Buchstaben) oder X1 (vierte Maustaste) oder X2 (fünfte Maustaste) an. Zum Beispiel: MouseClickDrag "X1", 0, 0, 10, 10.

Left ist die primäre Maustaste und Right ist die sekundäre Maustaste. Wenn der Benutzer die Maustasten via Systemsteuerung vertauscht hat, sind die physischen Positionen der Maustasten vertauscht, aber der Effekt bleibt derselbe.

X1, Y1

Typ: Integer

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). Standardmäßig sind Koordinaten relativ zum Clientbereich des aktiven Fensters, was aber mit CoordMode geändert werden kann.

[v2.0.7+]: Wenn sowohl X1 als auch Y1 weggelassen werden, wird die aktuelle Position des Mauszeigers verwendet. Aufgrund eines Bugs waren X1 und Y1 in früheren Versionen Pflichtparameter.

X2, Y2

Typ: Integer

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

Geschw

Typ: Integer

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

Typ: Zeichenkette

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

Diese Funktion verwendet den via SendMode gesetzten Send-Modus.

Das Ziehen des Mauszeigers kann auch mit verschiedenen Send-Funktionen durchgeführt werden, was flexibler ist, da der Modus über den Funktionsnamen 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).

Die BlockInput-Funktion 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.

Run "mspaint.exe"
if !WinWaitActive("ahk_class MSPaintApp",, 2)
    return
MouseClickDrag "L", 150, 450, 150, 350
MouseClickDrag "L", 150, 350, 200, 300
MouseClickDrag "L", 200, 300, 250, 350
MouseClickDrag "L", 250, 350, 150, 350
MouseClickDrag "L", 150, 350, 250, 450
MouseClickDrag "L", 250, 450, 250, 350
MouseClickDrag "L", 250, 350, 150, 450
MouseClickDrag "L", 150, 450, 250, 450