ControlGetText

콘트롤로부터 텍스트를 열람합니다.

ControlGetText, OutputVar , Control, WinTitle, WinText, ExcludeTitle, ExcludeText

매개변수

OutputVar

The name of the output variable in which to store the retrieved text.

Control

ClassNN (콘트롤의 클래스이름과 실체 번호) 또는 콘트롤의 텍스트일 수 있습니다. 둘 모두 Window Spy로 알아낼 수 있습니다. 텍스트를 사용할 때, 부합하는 행위는 SetTitleMatchMode로 결정됩니다. 이 매개변수가 비어있거나 생략되면, 목표 창의 최상위 콘트롤이 사용됩니다.

콘트롤의 HWND (창 핸들)에 작동시키려면, Control 매개변수를 빈 채로 두고 ahk_id %ControlHwnd%WinTitle 매개변수에 지정하십시오 (이것은 숨은 창에도 작동합니다. DetectHiddenWindows가 꺼져 있어도 상관 없습니다). 콘트롤의 HWND는 전형적으로 ControlGet Hwnd, MouseGetPos, 또는 DllCall()을 통하여 열람됩니다.

WinTitle

목표 창을 식별하는 창 제목 또는 다른 기준. WinTitle 참조.

WinText

존재하면, 이 매개변수는 목표 창 텍스트의 부문자열입니다 (동봉된 Window Spy 유틸리티에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있어야 탐지됩니다.

ExcludeTitle

제목에 이 값이 있는 창은 무시합니다.

ExcludeText

텍스트에 이 값이 있는 창은 무시합니다.

에러 처리

[v1.1.04+]: 이 명령어는 실패하면 예외를 던질 수 있습니다. 더 자세한 정보는 실행시간 에러를 참조하십시오.

ErrorLevel은 문제가 있으면 1, 그렇지 않으면 0이 설정됩니다.

논평

주의: 텍스트를 ListView, ListBox, 또는 ComboBox으로부터 열람하려면, 대신에 ControlGet List를 사용하십시오.

열람된 텍스트가 잘려 나간 것 같으면 (불완전하면), ControlGetText 말고 VarSetCapacity(OutputVar, 55)를 사용해 보십시오 [55를 잘려나간 텍스트보다 상당히 더 긴 크기로 교체하십시오]. 어플리케이션이 WM_GETTEXTLENGTH 메시지에 제대로 응답하지 않는 경우, AutoHotkey가 출력 변수를 너무 작게 만들어 모든 텍스트를 담지 못하기 때문입니다.

열람된 텍스트의 양은 변수의 최대 가용 능력으로 제한됩니다 (이는 #MaxMem 지시어를 통하여 변경할 수 있습니다). 결과적으로, 목표 콘트롤에 방대한 양의 텍스트가 담겨 있으면 (예를 들어, 편집기에 방대한 문서가 열려 있는 경우) 이 명령어는 방대한 양의 램을 사용할 가능성이 있습니다. 그렇지만, 변수의 메모리는 아무것도 지정하지 않으면 손쉽게 해제할 수 있습니다. 즉, OutputVar =.

대부분의 콘트롤 유형으로부터 열람된 텍스트는 각 줄의 끝을 표시하기 위해 홀로 라인피드(`n)를 사용하지 않고 캐리지 리턴과 라인피드 (`r`n)를 사용합니다.

SetTitleMatchMode Slow를 처리할 필요는 없습니다. 왜냐하면 ControlGetText는 언제나 텍스트를 느린 방법으로 받기 때문입니다 (그 때문에 광범위한 범위의 콘트롤 유형에 작동합니다).

창의 모든 콘트롤 목록을 열람하려면, WinGet ControlList를 사용하십시오.

창 제목과 텍스트는 대소문자를 구분합니다. 숨은 창은 DetectHiddenWindows가 켜져 있어야 탐지됩니다.

ControlSetText, WinGetText, Control, ControlGet, ControlMove, ControlFocus, ControlClick, ControlSend, #MaxMem

예제

Retrieves the current text from Notepad's edit control and stores it in OutputVar. This example may fail on Windows 11 or later, as it requires the classic version of Notepad.

ControlGetText, OutputVar, Edit1, Untitled -

Retrieves and reports the current text from the main window's edit control.

ListVars
WinWaitActive ahk_class AutoHotkey
ControlGetText, OutputVar, Edit1 ; Use the window found above.
MsgBox % OutputVar