Ermittelt den Text eines bestimmten Fensters.
WinGetText, AusgabeVar , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText
Name der Ausgabevariable, in der der abgerufene Text gespeichert werden soll.
Der Titel oder andere Möglichkeiten zum Identifizieren des Zielfensters. Weitere Informationen finden Sie unter FensterTitel-Parameter.
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.
Alle Fenster, die diesen Wert in ihren Titeln enthalten, werden ignoriert.
Alle Fenster, die diesen Wert in ihren Textelementen enthalten, werden ignoriert.
[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.
Wenn keine passenden Fenster gefunden werden, wird AusgabeVar leer gemacht.
Der ermittelte Text ist generell das gleiche, was das interne Tool Window Spy für dieses Fenster anzeigt. Wenn DetectHiddenText ausgeschaltet wurde, werden versteckte Texte in AusgabeVar weggelassen.
Jedes Textelement endet mit einem CR- und LF-Zeilenumbruchszeichen, die im Skript als `r`n dargestellt werden können. Um Zeilen oder Teilzeichenketten einzeln zu extrahieren, verwenden Sie Befehle oder interne Funktionen wie InStr() und SubStr(). Eine parsende Schleife kann auch genutzt werden, um Zeilen oder Worte einzeln durchzugehen.
Wenn der abgerufene Text abgeschnitten (unvollständig) zu sein scheint, können Sie versuchen, VarSetCapacity(AusgabeVar, 55)
vor WinGetText zu setzen [ersetzen Sie 55 mit einer Zeichenlänge, die wesentlich länger ist als der abgeschnittene Text]. Dies muss in der Regel getan werden, wenn AutoHotkey die Ausgabevariable für den Text zu klein macht, weil die Anwendung, deren Text abgerufen werden soll, nur sporadisch oder gar nicht auf die WM_GETTEXTLENGTH-Meldung reagiert.
Die Menge des abgerufenen Textes ist auf die maximale Kapazität einer Variable beschränkt (die via #MaxMem-Direktive geändert werden kann). Demzufolge verbraucht dieser Befehl sehr viel Arbeitsspeicher, falls das Zielfenster eine große Menge an Text beinhaltet (z. B. ein Editor, in dem ein großes Dokument offen ist). Um das zu verhindern, verwenden Sie stattdessen ControlGetText, um nur bestimmte Bereiche des Fenstertextes abzurufen. In allen Fällen kann der Speicher einer Variable später wieder freigegeben werden, indem man ihr einen leeren Wert zuweist, z. B. AusgabeVar := ""
.
Um eine Liste aller Steuerelemente in einem Fenster abzurufen, folgen Sie diesem Beispiel: WinGet, AusgabeVar, ControlList, FensterTitel
.
Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Versteckte Fenster werden nur erkannt, wenn DetectHiddenWindows eingeschaltet ist.
ControlGetText, WinGetActiveStats, WinGetActiveTitle, WinGetTitle, WinGetPos, #MaxMem