ControlGetPos

Ruft die Position und Größe eines Steuerelements ab.

ControlGetPos , X, Y, Breite, Höhe, Steuerelement, Fenstertitel, Fenstertext, Titelausnahme, Textausnahme

Parameter

X, Y

Namen der Variablen, in denen die X- und Y-Koordinaten (in Pixel) der oberen linken Ecke des Steuerelements gespeichert werden sollen. Diese Koordinaten sind relativ zur oberen linken Ecke des Zielfensters und damit identisch mit denen, die von ControlMove benutzt werden.

Lässt man X oder Y weg, werden die entsprechenden Werte nicht gespeichert.

Breite, Höhe

Namen der Variablen, in denen die Breite und Höhe (in Pixel) des Steuerelements gespeichert werden sollen. Lässt man diese Parameter weg, werden die entsprechenden Werte nicht gespeichert.

Steuerelement

Kann entweder die ClassNN-Bezeichnung (Klassenname und Instanznummer des Steuerelements) oder der Text des Steuerelements sein, die beide mit dem internen Tool Window Spy ermittelt werden können. Verwendet man Text, ist das Übereinstimmungsverhalten abhängig von SetTitleMatchMode. Wenn dieser Parameter leer ist, wird das oberste Steuerelement des Zielfensters benutzt.

Um ein Steuerelement via HWND-Nummer (eindeutige ID) anzusteuern, muss der Steuerelement-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.

Titelausnahme

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

Textausnahme

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

Bemerkungen

Wenn kein passendes Fenster oder Steuerelement gefunden wird, werden die Ausgabevariablen leer gemacht.

Im Gegensatz zu Befehlen, die ein Steuerelement ändern, erfolgt nach ControlGetPos keine automatische Verzögerung; das heißt, dass SetControlDelay keine Wirkung auf ControlGetPos hat.

MouseGetPos kann genutzt werden, um die ClassNN-Bezeichnung oder die HWND-Nummer (eindeutige ID) des Steuerelements unterhalb des Mauszeigers abzurufen. Mit WinGet ControlList kann eine Liste von Steuerelementen abgerufen werden, die in einem Fenster enthalten sind.

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

Siehe auch

ControlMove, WinGetPos, Control, ControlGet, ControlGetText, ControlSetText, ControlClick, ControlFocus, ControlSend

Beispiele

#1: Dieses Beispiel zeigt, wie der Name und die Position des Steuerelements unterhalb des Mauszeigers fortlaufend aktualisiert und angezeigt werden kann:

Loop
{
    Sleep, 100
    MouseGetPos, , , WelchesFenster, WelchesSteuerelement
    ControlGetPos, x, y, w, h, %WelchesSteuerelement%, ahk_id %WelchesFenster%
    ToolTip, %WelchesSteuerelement%`nX%X%`tY%Y%`nW%W%`t%H%
}