ControlFocus

Setzt den Eingabefokus auf das angegebene Steuerelement innerhalb eines Fensters.

ControlFocus , Steuerelement, FensterTitel, FensterText, IgnoriereTitel, IgnoriereText

Parameter

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 weggelassen wird oder leer ist, wird das oberste Steuerelement des Zielfensters verwendet.

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.

IgnoriereTitel

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

IgnoriereText

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.

Bemerkungen

Um die gewünschte Wirkung zu erzielen, darf das Fenster des Steuerelements weder minimiert noch versteckt sein.

Um die Zuverlässigkeit des Befehls zu verbessern, erfolgt jedes Mal, wenn er ausgeführt wurde, automatisch eine Verzögerung. Diese Verzögerung kann via SetControlDelay geändert werden.

MouseGetPos kann genutzt werden, um die ClassNN-Bezeichnung oder die HWND-Nummer (eindeutige ID) des Steuerelements unterhalb des Mauszeigers abzurufen.

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

Wenn ein Steuerelement durch eine Benutzereingabe fokussiert wird (z. B. durch Drücken der Tabulatortaste), werden zusätzliche Effekte angewendet, die unabhängig vom fokussierten Steuerelement sind. Diese Effekte werden nicht von ControlFocus angewendet, daher gelten die folgenden Einschränkungen:

Die WM_NEXTDLGCTL-Meldung kann verwendet werden, um das Steuerelement zu fokussieren und diese zusätzlichen Effekte anzuwenden. Zum Beispiel:

WinExist("A") ; Setzt das zuletzt gefundene Fenster auf das aktive Fenster
ControlGet, StrlmntHwnd, Hwnd,, Button1  ; Holt HWND der ersten Schaltfläche
SendMessage, 0x0028, StrlmntHwnd, True  ; 0x0028 ist WM_NEXTDLGCTL

SetControlDelay, ControlGetFocus, Control, ControlGet, ControlMove, ControlGetPos, ControlClick, ControlGetText, ControlSetText, ControlSend

Beispiele

Setzt den Eingabefokus auf die OK-Schaltfläche.

ControlFocus, OK, Beliebiger Fenstertitel