Retrieves various types of information about a control.

ControlGet, OutputVar, SubCommand , Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText

Parameters

OutputVar
The name of the variable in which to store the result of SubCommand.
SubCommand, Value
These are dependent upon each other and their usage is described below.
Control

Can be either ClassNN (the classname and instance number of the control) or the control's text, both of which can be determined via Window Spy. When using text, the matching behavior is determined by SetTitleMatchMode. If this parameter is blank, the target window's topmost control will be used.

To operate upon a control's HWND (window handle), leave the Control parameter blank and specify ahk_id %ControlHwnd% for the WinTitle parameter (this also works on hidden controls even when DetectHiddenWindows is Off). The HWND of a control is typically retrieved via ControlGet HwndMouseGetPos, or DllCall.

WinTitle
A window title or other criteria identifying the target window. See WinTitle.
WinText
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.
ExcludeTitle
Windows whose titles include this value will not be considered.
ExcludeText
Windows whose text include this value will not be considered.

Sub-commands

For SubCommand, specify one of the following:

  • List: Retrieves a list of items from a ListView, ListBox, ComboBox, or DropDownList.
  • Checked: Retrieves 1 if the checkbox or radio button is checked or 0 if not.
  • Enabled: Retrieves 1 if the control is enabled, or 0 if disabled.
  • Visible: Retrieves 1 if the control is visible, or 0 if hidden.
  • Tab: Retrieves the tab number of a SysTabControl32 control.
  • FindString: Retrieves the entry number of a ListBox or ComboBox that is an exact match for the string.
  • Choice: Retrieves the name of the currently selected entry in a ListBox or ComboBox.
  • LineCount: Retrieves the number of lines in an Edit control.
  • CurrentLine: Retrieves the line number in an Edit control where the caret resides.
  • CurrentCol: Retrieves the column number in an Edit control where the caret resides.
  • Line: Retrieves the text of the specified line number in an Edit control.
  • Selected: Retrieves the selected text in an Edit control.
  • Style: Retrieves an 8-digit hexadecimal number representing the style of the control.
  • ExStyle: Retrieves an 8-digit hexadecimal number representing the extended style of the control.
  • Hwnd [v1.1.04+]: Retrieves the window handle (HWND) of the control.
해석에 유의해야한다. List 부분에서 a list of items 를 반환한다고 되어있다.  

List

Retrieves a list of items from a ListView, ListBox, ComboBox, or DropDownList. For ListView, additional options can be specified.

ControlGet, OutputVar, List , Options, Control, WinTitle, WinText, ExcludeTitle, ExcludeText

ListView

If the Options parameter is blank or omitted, all the text in the control is retrieved. Each row except the last will end with a linefeed character (`n). Within each row, each field (column) except the last will end with a tab character (`t).

Specify for Options zero or more of the following words, each separated from the next with a space or tab:

SelectedRetrieves only the selected (highlighted) rows rather than all rows. If none, OutputVar is made blank.
FocusedRetrieves only the focused row. If none, OutputVar is made blank.
Col4Retrieves only the fourth column (field) rather than all columns (replace 4 with a number of your choice).
CountRetrieves a single number that is the total number of rows in the control.
Count SelectedRetrieves the number of selected (highlighted) rows.
Count FocusedRetrieves the row number (position) of the focused row (0 if none).
Count ColRetrieves the number of columns in the control (or -1 if the count cannot be determined).

Note: Some applications store their ListView text privately, which prevents their text from being retrieved. In these cases, ErrorLevel will usually be set to 0 (indicating success) but all the retrieved fields will be empty. Also note that ListView text retrieval is not restricted by #MaxMem.

Upon success, ErrorLevel is set to 0. Upon failure, it is set to 1 and OutputVar is made blank. Failure occurs when: 1) the target window or control does not exist; 2) the target control is not of type SysListView32; 3) the process owning the ListView could not be opened, perhaps due to a lack of user permissions or because it is locked; 4) the ColNoption specifies a nonexistent column.

To extract the individual rows and fields out of a ListView, use a parsing loop as in this example:

ControlGet, SelectedItems, List, Selected, SysListView321, WinTitle
Loop, Parse, SelectedItems, `n  ; Rows are delimited by linefeeds (`n).
{
    RowNumber := A_Index
    Loop, Parse, A_LoopField, %A_Tab%  ; Fields (columns) in each row are delimited by tabs (A_Tab).
        MsgBox Row #%RowNumber% Col #%A_Index% is %A_LoopField%.
}

On a related note, the columns in a ListView can be resized via SendMessage as shown in this example:

SendMessage, 4126, 0, 80, SysListView321, WinTitle  ; 4126 is LVM_SETCOLUMNWIDTH.

In the above, 0 indicates the first column (specify 1 for the second, 2 for the third, etc.) Also, 80 is the new width. Replace 80 with -1 to autosize the column. Replace it with -2 to do the same but also take into account the header text width.

ListBox, ComboBox, DropDownList

All the text is retrieved from the control (that is, the ListView options above such as Count and Selected are not supported).

컨트롤(개체)로부터 모든 텍스트가 반환되어진다. 즉, ListView의 옵션들 (Count 그리고 Selected 같은 것은 지원되지 않는다)


Each item except the last will be terminated by a linefeed character (`n). To access the items individually, use a parsing loop as in this example:


마지막을 제외한 각각의 아이템들은 Linefeed Character (`n) 문자에 의해서 구분지어진다. 각각의 아이템들에 접근하기 위해, 다음과 같은 parsing loop 를 사용해본다.

ControlGet, Items, List,, ComboBox1, WinTitle
Loop, Parse, Items, `n
    MsgBox Item number %A_Index% is %A_LoopField%.


'AUTOHOTKEY' 카테고리의 다른 글

IniRead, IniWrite, IniDelete  (0) 2019.02.20
Line number in listbox  (0) 2019.02.20
ControlGet 에 관한 고찰  (0) 2019.02.20
GetText from ListBox  (0) 2019.02.20
ListBox Count  (0) 2019.02.20

+ Recent posts