ControlGetFocus

Ermittelt, welches Steuerelement im Zielfenster den Tastaturfokus hat, sofern vorhanden.

ControlGetFocus, AusgabeVar , FensterTitel, FensterText, AusnahmeTitel, AusnahmeText

Parameter

AusgabeVar

Name der Ausgabevariable, in der die ClassNN des Steuerelements gespeichert werden soll.

FensterTitel, FensterText, AusnahmeTitel, AusnahmeText

Wenn jeder dieser Parameter leer ist oder weggelassen wird, wird das Zuletzt Gefundene Fenster verwendet. Andernfalls geben Sie für FensterTitel einen Fenstertitel oder andere Kriterien zur Identifizierung des Zielfensters und/oder für FensterText eine Teilzeichenkette aus einem Textelement des Zielfensters an (wie von Window Spy angezeigt).

AusnahmeTitel und AusnahmeText können verwendet werden, um ein oder mehrere Fenster anhand ihres Titels oder Textes auszuschließen. Ihre Angabe ähnelt der von FensterTitel und FensterText, außer dass AusnahmeTitel keine anderen Kriterien als den Fenstertitel erkennt.

Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows bzw. DetectHiddenText geändert werden kann. Standardmäßig muss ein Fenstertitel mit dem angegebenen FensterTitel oder AusnahmeTitel beginnen, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.

Fehlerbehandlung

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

ErrorLevel wird auf 0 gesetzt, wenn das Steuerelement mit dem Tastaturfokus erfolgreich abgerufen werden konnte. Andernfalls (z.B. wenn das Fenster nicht existiert oder keines der darin enthaltenen Steuerelemente den Tastaturfokus hat) wird ErrorLevel auf 1 gesetzt.

Bemerkungen

Dieser Befehl ist für die Verwendung mit Steuerelementen in einem Nicht-GUI-Fenster vorgesehen, also einem Fenster, das nicht mit dem Gui-Befehl erstellt wurde. Er funktioniert am besten mit den gängigen oder vordefinierten Steuerelementen von Microsoft. Einige Anwendungen verwenden jedoch benutzerdefinierte oder modifizierte Steuerelemente – in diesem Fall funktioniert der Befehl möglicherweise nicht wie erwartet. Für GUI-Steuerelemente ist es in der Regel sinnvoller, GuiControlGet Focus oder in [v1.0.43.06+] GuiControlGet FocusV zu verwenden.

Das mit diesem Befehl abgerufene Steuerelement hat den Tastaturfokus, d.h. das Steuerelement ist das Ziel aller Tastendrücke des Benutzers.

Das Zielfenster muss aktiv sein, um ein fokussiertes Steuerelement zu haben. Wenn das Zielfenster nicht aktiv ist, wird AusgabeVar leer gemacht.

Vor [v1.1.19.03] war es so, dass wenn ControlGetFocus mehrmals schnell ausgeführt wurde (also alle 500 ms oder schneller), der Benutzer keinen Doppelklick machen konnte. Dieses Problem wurde behoben.

ControlFocus, GuiControlGet Focus, GuiControlGet FocusV, ControlMove, ControlClick, ControlGetText, ControlSetText, ControlSend

Beispiele

Meldet die ClassNN des Notepad-Steuerelements, das den Tastaturfokus hat.

WinActivate, ahk_class Notepad
ControlGetFocus, AusgabeVar, ahk_class Notepad
if ErrorLevel
    MsgBox, Das Zielfenster existiert nicht oder hat kein fokussiertes Steuerelement.
else
    MsgBox, Steuerelement mit Fokus = %AusgabeVar%