ControlGetText

Ruft den Text eines Steuerelements ab.

Text := ControlGetText(Steuerelement , FensterTitel, FensterText, AusnahmeTitel, AusnahmeText)

Parameter

Steuerelement

Typ: Zeichenkette, Integer oder Objekt

ClassNN-Bezeichnung, Text oder HWND-Nummer des Steuerelements, oder ein Objekt mit einer Hwnd-Eigenschaft. Einzelheiten finden Sie unter Der Steuerelement-Parameter.

FensterTitel, FensterText, AusnahmeTitel, AusnahmeText

Typ: Zeichenkette, Integer oder Objekt

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 (Textelemente können mit dem internen Tool "Window Spy" in Erfahrung gebracht werden).

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 und DetectHiddenText geändert werden kann. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.

Rückgabewert

Typ: Zeichenkette

Diese Funktion gibt den Text des angegebenen Steuerelements zurück.

Fehlerbehandlung

Es wird ein TargetError ausgelöst, wenn das Fenster oder Steuerelement nicht gefunden werden konnte.

Bemerkungen

Hinweis: Mit ListViewGetContent oder ControlGetItems können stattdessen Texte aus einer ListView, ListBox oder ComboBox abgerufen werden.

Wenn der abgerufene Text gekürzt (unvollständig) ist, kann es erforderlich sein, den Text stattdessen durch Senden der WM_GETTEXT-Meldung via SendMessage abzurufen. Der Grund dafür ist, dass einige Anwendungen nur sporadisch oder gar nicht auf die WM_GETTEXTLENGTH-Meldung reagieren, wodurch AutoHotkey den Rückgabewert zu klein für den gesamten Text macht.

Diese Funktion kann sehr viel Arbeitsspeicher beanspruchen, wenn das Zielsteuerelement eine große Menge an Text enthält (z.B. wenn ein großes Dokument in einem Texteditor geöffnet wurde). Allerdings kann der Speicher einer Variable nach ihrer Verwendung wieder freigegeben werden, indem ihr ein leerer Wert zugewiesen wird, d.h. Text := "".

Die meisten Steuerelemente verwenden ein Wagenrücklauf-Zeilenvorschub-Paar (`r`n) anstelle eines einzelnen Zeilenvorschubs (`n) für ihre abgerufenen Texte, um das Ende einer Zeile zu markieren.

SetTitleMatchMode "Slow" muss nicht verwendet werden, da ControlGetText den Text immer im langsamen Modus abruft (dieser Modus funktioniert mit viel mehr Steuerelementen).

Mit WinGetControls oder WinGetControlsHwnd kann ein Array von Steuerelementen in einem Fenster abgerufen werden.

ControlSetText, WinGetText, Control-Funktionen

Beispiele

Ruft den aktuellen Text aus dem Notepad-Eingabefeld ab und speichert ihn in Text. Dieses Beispiel kann unter Windows 11 oder höher fehlschlagen, da es die klassische Version von Notepad erfordert.

Text := ControlGetText("Edit1", "Unbenannt -")

Ermittelt und meldet den aktuellen Text im Eingabefeld des Hauptfensters.

ListVars
WinWaitActive "ahk_class AutoHotkey"
MsgBox ControlGetText("Edit1") ; Verwendet das oben gefundene Fenster.