ControlGetPos


Liefert die Position und Größe eines Controls.

ControlGetPos [, X, Y, Width, Height, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]

Parameter

X, Y

Die Namen der Variablen, in denen die X- und Y-Koordinaten (in Pixeln) der oberen linken Ecke von Control gespeichert werden. Diese Koordinaten sind immer relativ zur oberen linken Ecke des Zielfensters und deshalb identisch mit den von ControlMove verwendeten.

Wenn X oder Y weggelassen werden, wird der zugehörige Wert nicht gespeichert.

Width , Height Die Namen der Variablen, in denen die Breite und Höhe (in Pixeln) von Control gespeichert werden. Wenn sie weggelassen werden, werden die zugehörigen Werte nicht gespeichert.
Control

Entweder die ClassNN (Klassenname und Instanznummer) oder der Name/Text (Aufschrift/Inhalt) des Controls, wie sie mit dem "Window Spy" ermittelt werden können. Bei Angabe von Name/Text wird das Suchergebnis von der aktuellen Einstellung für SetTitleMatchMode beeinflusst. Wenn der Parameter leer gelassen wird, wird das oberste Control des Zielfensters verwendet.

Wenn mit dem HWND (window handle, ahk_id, eindeutige Identifikationsnummer) eines Controls gearbeitet werden soll, wird der Control Parameter leer gelassen und stattdessen ahk_id %ControlHwnd% als WinTitle Parameter angebeben. Das funktioniert auch für verborgene Controls, selbst wenn DetectHiddenWindows auf OFF gesetzt ist. Das HWND eines Controls kann z.B. mit ControlGet Hwnd, MouseGetPos oder DllCall ermittelt werden.

WinTitle

Der vollständige Titel oder ein Teil des Titels des Zielfensters (das Suchergebnis wird von SetTitleMatchMode beeinflusst). Wenn dieser und die nächsten 3 Parameter leer gelassen werden, wird das LastFoundWindow (zuletzt gefundene Fenster) verwendet. Wenn hier der Buchstabe A angegeben wird und die nächsten 3 Parameter leer gelassen werden, wird das momentan aktive Fenster verwendet. Für eine Fensterklasse wird ahk_class ExakterKlassenName (wie vom "Window Spy" angezeigt) angegeben, für eine Prozess ID (PID) ahk_pid %VarMitInhaltPID%, für eine Fenstergruppe ahk_group GroupName und für die eindeutige ID eines Fensters ahk_id %VarMitInhaltID%. Die Suche kann durch Angabe mehrerer Kriterien eingeschränkt werden. Beispiel: My File.txt ahk_class Notepad

WinText

Wenn angegeben, muss dieser Parameter den Inhalt oder einen Teil des Inhalts eines einzelnen Textelementes des Zielfensters enthalten, wie er z.B. vom mitgelieferten "Window Spy" angezeigt wird. Verborgene Textelemente werden nur gefunden, wenn DetectHiddenText vorher auf ON gesetzt wurde.

ExcludeTitle

Fenster, deren Titel diesen Wert enthalten, werden bei der Suche übergangen.

ExcludeText

Fenster, deren Text diesen Wert enthält, werden bei der Suche übergangen.

Anmerkungen

Wenn kein entsprechendes Fenster oder Control gefunden wurde, werden die Ausgabevariablen geleert.

Im Gegensatz zu den Anweisungen, die ein Control verändern, wird nach der Ausführung von ControlGet keine automatische Pause eingelegt, d.h. SetControlDelay hat hier keine Wirkung.

Um den Namen des Controls zu bestimmen, über dem sich der Mauszeiger befindet, verwendet man MouseGetPos. Für eine Auflistung aller Controls eines Fensters verwendet man WinGet ControlList.

Bei Fenstertiteln und -texten muss die Groß/Kleinschreibung beachtet werden. Verborgene Fenster werden nur gefunden, wenn DetectHiddenWindows vorher auf ON gesetzt wurde.

Siehe auch

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

Beispiel

; Dieses funktionierende Beispiel ermittelt kontinuierlich den Namen
; und die Position des aktuellen Controls unter dem Mauszeiger und
; zeigt diese an
Loop
{
Sleep, 100
MouseGetPos, , , WhichWindow, WhichControl
ControlGetPos, x, y, w, h, %WhichControl%, ahk_id %WhichWindow%
ToolTip, %WhichControl%`nX%X%`tY%Y%`nW%W%`t%H%
}