# ControlGetText

从一个控件获取文本。

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

#### 参数

OutputVar | 储存获得的文本的变量名称
Control | 可以是控件的名称/文本或 ClassNN (控件的 classname(类名)和序号)，它们都可以通过 Window Spy 来确定。当使用名称/文本时，matching behavior(匹配模式)通过 SetTitleMatchMode 决定。如果此 parameter(参数)为空或省略，目标窗口的顶端控件将被使用。 要对一个控件的 HWND (窗口 handle(句柄) )进行操作，将 Control 参数留空并为 WinTitle 参数指定 ahk_id %ControlHwnd% (这样即使当 DetectHiddenWindows 是 Off 状态，它也能对隐藏的控件起作用)。一个控件的 HWND 往往由 ControlGet Hwnd 、MouseGetPos 或 DllCall 取得。
WinTitle | 目标窗口的标题或副标题(匹配模式由 SetTitleMatchMode 决定)。如果此参数和后面的3个参数被省略， Last Found Window(最近找到的窗口)将被使用。如果此参数是字母 A 并且后面的三个参数被省略，active(激活的)窗口将被使用。要使用一个窗口类，指定 ahk_class 确切的类名(通过 Window Spy 显示)。要使用一个 process identifier (PID)(进程标识符)，指定 ahk_pid %包含PID的变量% 。要使用一个 window group(窗口组)，指定 ahk_group GroupName 。要使用一个窗口的 unique ID number(唯一标识符编号)，指定 ahk_id %包含ID的变量% 。通过指定 multiple criteria(多个条件) 缩小搜索范围。 例如: My File.txt ahk_class Notepad
WinText | 如果用到，此参数必须是目标窗口的一个单独 text element(文本对象)的 substring(子字串) (像内置的 Window Spy 工具显示的一样)。如果 DetectHiddenText 是 ON 的状态，隐藏的文本对象将被探测。
ExcludeTitle | 标题含有此参数值的窗口将不被考虑。
ExcludeText | 文本含有此参数值的窗口将不被考虑。

#### ErrorLevel

如果有问题，ErrorLevel 值将被设置为 1 ，否则为 0 。

#### 注意

注意：要从一个 ListView(列表视图)、ListBox(列表框)或者 ComboBox(组合框)获取文本，使用 ControlGet List 来代替此命令。

如果获得的文本显得被缩短过(不完整)，试试在用 ControlGetText 命令之前先用 VarSetCapacity(OutputVar, 55) [用一个与缩短的文本相比而显得非常地长的大小来替换 55 ]。这是很有必要的，因为有些应用程序对于 WM_GETTEXTLENGTH 消息的反馈并不准确，这就导致了 AutoHotkey 的输出变量过小，以至于不能装下整个文本。

返回的文本数量受到一个变量的最大容量的限制(容量可以通过 #MaxMem 指令来改变)。因此，如果目标控件包含大量的文本(例如：用编辑器打开一个很大的文档)，这个命令可能会使用大量的 RAM(随机存取存储器)。不过，一个变量的存储容量能在指定其为空后就可以被释放。例如 OutputVar =

从大部分控件类型取得的文本使用 carriage return(回车)和换行(`r`n)而不是一个单独的换行(`n)来表示每一行的结束。

没有必要执行SetTitleMatchMode Slow ，因为 ControlGetText 总是用缓慢方法来获得文本(由于它工作在一个更大范围的控件类型)。

要获得一个窗口内所有控件的列表，使用 WinGet ControlList 。

窗口标题和文本是 case sensitive (区分大小写)的。隐藏的窗口将不被探测，除非 DetectHiddenWindows 已被打开。

#### 相关命令

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

#### 示例

    ControlGetText, OutputVar, Edit1, 无标题 -

翻译：坛友baggio1987 修正：天堂之门 menk33@163.com 2008年8月4日