WinGetText

지정된 창으로부터 텍스트를 열람합니다.

WinGetText, OutputVar , WinTitle, WinText, ExcludeTitle, ExcludeText

매개변수

OutputVar

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

WinTitle

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

WinText

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

ExcludeTitle

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

ExcludeText

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

에러 처리

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

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

논평

부합하는 창이 없으면, OutputVar는 비워집니다.

열람된 텍스트는 일반적으로 Window Spy가 그 창에 대하여 보여주는 것과 동일합니다. 그렇지만, DetectHiddenText가 꺼져 있다면, 숨은 텍스트는 OutputVar에 포함되지 않습니다.

각 텍스트 원소는 캐리지 리턴과 라인피드 (CR+LF)로 끝납니다. 스크립트에서는 `r`n로 표기됩니다. To extract individual lines or substrings, use commands or built-in functions such as InStr() and SubStr(). 회돌이 파싱을 사용하면 각 줄이나 단어를 하나씩 조사할 수 있습니다.

열람된 텍스트가 (불완전하게) 잘려 나타나면, 먼저 VarSetCapacity(OutputVar, 55)를 사용한 다음 WinGetText를 시도하십시오 [잘려 나간 텍스트보다 훨씬 더 큰 크기로 55를 교체하십시오]. 어플리케이션이 WM_GETTEXTLENGTH 메시지에 제대로 응답하지 않는 경우, AutoHotkey가 출력 변수를 너무 작게 만들어 모든 텍스트를 담지 못하기 때문입니다.

열람된 텍스트의 양은 변수의 최대 가용 능력으로 제한됩니다 (이는 #MaxMem 지시어를 통하여 변경할 수 있습니다). 결과적으로, 이 명령어는 목표 창에 (예, 큰 문서를 열고 있는 편집기에) 방대한 양의 텍스트가 있다면 방대한 양의 RAM을 사용할 수 있습니다. 이를 피하려면, 창 텍스트의 포인터만 열람하는 것도 가능합니다. 대신에 ControlGetText를 사용하십시오. 어느 경우든, 변수의 메모리는 나중에 아무것도 할당하지 않으면 해제할 수 있습니다. 즉, OutputVar =이면 메모리가 해제됩니다.

창의 모든 콘트롤 목록을 열람하려면, 다음 예제를 따르십시오: WinGet, OutputVar, ControlList, WinTitle

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

ControlGetText, WinGetActiveStats, WinGetActiveTitle, WinGetTitle, WinGetPos, #MaxMem

예제

Opens the calculator, waits until it exists, and retrieves and reports its text.

Run, Calc.exe
WinWait, Calculator
WinGetText, text ; Use the window found by WinWait.
MsgBox, The text is:`n%text%