Retrieves text from a control.
Text := ControlGetText(Control , WinTitle, WinText, ExcludeTitle, ExcludeText)
Type: String, Integer or Object
The control's ClassNN, text or HWND, or an object with a Hwnd
property. For details, see The Control Parameter.
Type: String, Integer or Object
If each of these is blank or omitted, the Last Found Window will be used. Otherwise, specify for WinTitle a window title or other criteria to identify the target window and/or for WinText a substring from a single text element of the target window (as revealed by the included Window Spy utility).
ExcludeTitle and ExcludeText can be used to exclude one or more windows by their title or text. Their specification is similar to WinTitle and WinText, except that ExcludeTitle does not recognize any criteria other than the window title.
Window titles and text are case-sensitive. By default, hidden windows are not detected and hidden text elements are detected, unless changed with DetectHiddenWindows and DetectHiddenText; however, when using pure HWNDs, hidden windows are always detected regardless of DetectHiddenWindows. By default, a window title can contain WinTitle or ExcludeTitle anywhere inside it to be a match, unless changed with SetTitleMatchMode.
Type: String
This function returns the text of the specified control.
A TargetError is thrown if the window or control could not be found.
Note: To retrieve text from a ListView, ListBox, or ComboBox, use ListViewGetContent or ControlGetItems instead.
If the retrieved text appears to be truncated (incomplete), it may be necessary to retrieve the text by sending the WM_GETTEXT message via SendMessage instead. This is because some applications do not respond properly to the WM_GETTEXTLENGTH message, which causes AutoHotkey to make the return value too small to fit all the text.
This function might use a large amount of RAM if the target control (e.g. an editor with a large document open) contains a large quantity of text. However, a variable's memory can be freed after use by assigning it to nothing, i.e. Text := ""
.
Text retrieved from most control types uses carriage return and linefeed (`r`n) rather than a solitary linefeed (`n) to mark the end of each line.
It is not necessary to do SetTitleMatchMode "Slow"
because ControlGetText always retrieves the text using the slow mode (since it works on a broader range of control types).
To retrieve an array of all controls in a window, use WinGetControls or WinGetControlsHwnd.
ControlSetText, WinGetText, Control functions
Retrieves the current text from Notepad's edit control and stores it in Text. This example may fail on Windows 11 or later, as it requires the classic version of Notepad.
Text := ControlGetText("Edit1", "Untitled -")
Retrieves and reports the current text from the main window's edit control.
ListVars WinWaitActive "ahk_class AutoHotkey" MsgBox ControlGetText("Edit1") ; Use the window found above.