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

A window title or other criteria identifying the target window. See WinTitle.


Type: String

If present, this parameter must be a substring from a single text element of the target window (as revealed by the included Window Spy utility). Hidden text elements are detected if DetectHiddenText is ON.


Type: String

Windows whose titles include this value will not be considered.


Type: String

Windows whose text include this value will not be considered.

Return Value

Type: String

This function returns the text of the specified control. If there is no matching control, an empty string is returned and ErrorLevel is set to 1.


ErrorLevel is set to 1 if there was a problem or 0 otherwise.


Note: To retrieve text from a ListView, ListBox, or ComboBox, use ControlGetList instead.

If the retrieved text appears to be truncated (incomplete), try using VarSetCapacity(Text, 55) prior to ControlGetText [replace 55 with a size that is considerably longer than the truncated text]. This is necessary 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 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 method (since it works on a broader range of control types).

To retrieve a list of all controls in a window, use WinGetControls or WinGetControlsHwnd.

Window titles and text are case sensitive. Hidden windows are not detected unless DetectHiddenWindows has been turned on.


ControlSetText, WinGetText, Control functions


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