ControlClick

Sendet einen Maustastenklick oder eine Mausradaktion an ein Steuerelement.

ControlClick , Steuerelement-oder-Pos, Fenstertitel, Fenstertext, WelcheTaste, Klickanzahl, Optionen, Titelausnahme, Textausnahme

Parameter

Steuerelement-oder-Pos

Wenn dieser Parameter leer ist, wird das oberste Steuerelement des Zielfensters angeklickt (oder das Zielfenster selbst, wenn es keine Steuerelemente hat). Ansonsten wird einer der unteren Modi angewendet.

Modus 1 (Position): Geben Sie die X- und Y-Koordinaten relativ zur oberen linken Ecke des Zielfensters an. Die X-Koordinate muss vor der Y-Koordinate stehen, außerdem müssen sie mit mindestens einem Leer- oder Tabulatorzeichen voneinander getrennt werden. Zum Beispiel: X55 Y33. Befindet sich auf den angegebenen Koordinaten ein Steuerelement, wird das Klickereignis zu diesem Steuerelement weitergeleitet. Wenn dort kein Steuerelement zu finden ist, wird das Klickereignis an das Zielfenster selbst gesendet (das je nach Art des Fensters eventuell keinen Effekt hat).

Hinweis: In Modus 1 werden die Optionsbuchstaben X und Y in Optionen ignoriert.

Modus 2 (ClassNN oder Text): Geben Sie entweder das ClassNN-Bezeichnung (Klassenname und Instanznummer des Steuerelements) oder den Namen/Text des Steuerelements an, die beide mit dem internen Tool Window Spy ermittelt werden können. Verwendet man den Namen/Text, ist das Übereinstimmungsverhalten abhängig von SetTitleMatchMode.

Standardmäßig hat Modus 2 eine höhere Priorität als Modus 1. Sollte zum Beispiel der seltene Fall eintreten, dass ein Steuerelement einen Text oder eine ClassNN-Bezeichnung im Format "Xnnn Ynnn" aufweist, würde Modus 2 in Kraft treten. Um dieses Problem zu umgehen und Modus 1 zu erzwingen, schreibt man das Wort Pos in den Optionen: ControlClick, x255 y152, Fenstertitel,,,, Pos.

Um ein Steuerelement via HWND-Nummer (eindeutige ID) anzusteuern, muss dieser Parameter leer gelassen und ahk_id %SteuerelementHwnd% als Fenstertitel-Parameter übergeben werden (funktioniert auch bei versteckten Steuerelementen, selbst wenn DetectHiddenWindows ausgeschaltet ist). Die HWND-Nummer eines Steuerelements kann üblicherweise via ControlGet Hwnd, MouseGetPos oder DllCall() abgerufen werden.

Fenstertitel

Der Titel oder andere Möglichkeiten zum Identifizieren des Zielfensters. Weitere Informationen finden Sie unter Fenstertitel-Parameter.

Fenstertext

Eine Zeichenkette, die in einem der Textelemente des Zielfensters enthalten ist (eventuell vorhandene Textelemente können mit dem internen Tool Window Spy aufgedeckt werden). Versteckte Textelemente werden nur erkannt, wenn DetectHiddenText eingeschaltet ist.

WelcheTaste

Die zu klickende Taste: LEFT, RIGHT, MIDDLE (oder jeweils nur der erste Buchstabe). Wenn dieser Parameter weggelassen wird oder leer ist, wird standardmäßig LEFT (linke Maustaste) verwendet.

X1 (XButton1, die 4. Maustaste) und X2 (XButton2, die 5. Maustaste) werden ebenfalls unterstützt.

WheelUp (oder WU) und WheelDown (oder WD) werden ebenfalls unterstützt. In diesem Fall bestimmt Klickanzahl, wie häufig das Mausrad stufenweise gedreht werden soll.

Windows Vista oder höher [v1.0.48+]: WheelLeft (WL) und WheelRight (WR) werden ebenfalls unterstützt (funktioniert nicht in älteren Betriebssystemen). In diesem Fall bestimmt Klickanzahl, wie häufig das Mausrad stufenweise gedreht werden soll.

Klickanzahl

Die Anzahl der Mausklicks, die gesendet werden sollen, das auch ein Ausdruck sein kann. Wenn dieser Parameter weggelassen wird oder leer ist, wird standardmäßig 1 verwendet.

Optionen

Eine Zeichenkette, die aus folgenden Optionsbuchstaben besteht. Zum Beispiel: d x50 y25.

NA [v1.0.45+]: Kann die Zuverlässigkeit verbessern. Siehe Zuverlässigkeit weiter unten.

D: Drückt die Maustaste nach unten, aber lässt sie nicht mehr los (also nur ein Down-Ereignis). Fehlt sowohl die D- als auch U-Option, wird ein vollständiger Mausklick gesendet (also ein Down- und Up-Ereignis).

U: Lässt die Maustaste los (also nur ein Up-Ereignis). Diese Option sollte nicht verwendet werden, wenn die D-Option bereits vorhanden ist (und umgekehrt).

Pos: Fügen Sie das Wort Pos in den Optionen ein, um den X/Y-Positionierungsmodus des Steuerelement-oder-Pos-Parameters zu erzwingen.

Xn: Geben Sie für n die zu klickende X-Position relativ zur oberen linken Ecke des Steuerelements an. Wenn diese Option nicht angegeben ist, erfolgt der Mausklick in der horizontalen Mitte des Steuerelements.

Yn: Geben Sie für n die zu klickende Y-Position relativ zur oberen linken Ecke des Steuerelements an. Wenn diese Option nicht angegeben ist, erfolgt der Mausklick in der vertikalen Mitte des Steuerelements.

Verwenden Sie dezimale (nicht hexadezimale) Zahlen für die Optionen X und Y.

Titelausnahme

Alle Fenster, die diesen Wert in ihren Titeln enthalten, werden ignoriert.

Textausnahme

Alle Fenster, die diesen Wert in ihren Textelementen enthalten, werden ignoriert.

Fehlerbehandlung

[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird bei Misserfolg auf 1 und bei Erfolg auf 0 gesetzt.

Zuverlässigkeit

Um die Zuverlässigkeit von ControlClick zu verbessern -- besonders in Situationen, wo man währenddessen den Mauszeiger physisch bewegt -- können folgende Punkte eventuell weiterhelfen:

1) Benutzen Sie SetControlDelay -1 vor ControlClick. Dadurch wird verhindert, dass die Maustaste während des Klicks gedrückt gehalten wird, um wiederum Störungen durch physische Mausbewegungen zu reduzieren.

2) Geben Sie die Zeichenkette NA im sechsten Parameter (Optionen) wie unten gezeigt an:

SetControlDelay -1
ControlClick, Toolbar321, Fenstertitel,,,, NA

NA verhindert nicht nur, dass das Zielfenster als aktiv markiert wird, sondern auch, dass die Eingabeverarbeitung des Fensters und des Skripts vermischt werden, um eventuelle Störungen durch physische Mausbewegungen zu unterdrücken (aber normalerweise nur, wenn das Zielfenster nicht aktiv ist). Diese Methode funktioniert eventuell nicht bei allen Typen von Fenstern und Steuerelementen.

Bemerkungen

Einige Anwendungen ignorieren eine Klickanzahl höher als 1 in Bezug auf das Mausrad. Für solche Anwendungen können Sie eine Schleife nutzen, um die Anzahl zu erhöhen, wie häufig das Mausrad stufenweise gedreht werden soll. Das folgende Beispiel dreht das Mausrad fünfmal:

Loop, 5
    ControlClick, Steuerelement, Fenstertitel, Fenstertext, WheelUp

Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Versteckte Fenster werden nur erkannt, wenn DetectHiddenWindows eingeschaltet ist.

Siehe auch

SetControlDelay, Control, ControlGet, ControlGetText, ControlMove, ControlGetPos, ControlFocus, ControlSetText, ControlSend, Click

Beispiele

#1

ControlClick, OK, Beliebiger Fenstertitel  ; Klickt die OK-Schaltfläche
ControlClick, x55 y77, Fenstertitel  ; Klickt auf die Koordinaten. Beachten Sie, dass kein Komma zwischen X und Y vorhanden ist.

#2: Die folgende Methode kann die Zuverlässigkeit verbessern und Nebeneffekte reduzieren:

SetControlDelay -1
ControlClick, Toolbar321, Fenstertitel,,,, NA x192 y10  ; Klickt im NA-Modus auf Koordinaten relativ zum angegebenen Steuerelement.