AutoIt v3 的其中一个最优秀的新功能就是提供了直接操作某些窗口控件的支持. 通常我们在窗口上能看到的东西大多都是以下控件的一种:按钮,列表框,文本编辑框,静态文本等. 比如说系统自带的记事本程序的主窗口也不过只是一个相对而言比较大一点的"编辑框(Edit)" 控件罢了!正因为 AutoIt 提供了直接对控件操作的途径,我们再也不需要(也不应该)使用模拟键击等低级的方法来操作窗口了,这使得需要实现窗口操作的脚本更加可靠.
注意: AutoIt 仅支持标准的 Microsoft 控件 - 有些应用程序(的作者)自己写的自定义控件看起来很像是标准的 MS 控件,但却无法被脚本程序识别,那就只能靠您的经验判断了,自己试试!
运行 AutoIt 窗口信息工具(AutoIt Window Info) 之后您可以试着把鼠标移动到自己感兴趣的窗口上,在 Window Info 的窗口就会显示当前鼠标经过的控件的信息.
在使用 Control...() 函数时,有一些控件描述可以使用ControlID. 通过这些描述才能正确的识别.这些描述包括下列 属性:
一个控件中的一个或者多个 controlID ,使用下列格式
[属性1:值1; 属2:值2]
注意: If this special format is not used then the parameter is taken to be a control ID (if numeric) or the ClassnameNN/text of the control (if a string). Although the special format is more longwinded than these methods it is much less ambiguous.
如果一个值中包含了一个 ";" 它必须是成对出现的.
例如 发送一些文本到记事本窗口
ControlSend("无标题 - 记事本", "", "[CLASS:Edit;
INSTANCE:1]", "This is some text")
或者
ControlSend("无标题 - 记事本", "", "[CLASSNN:Edit1]", "This is some text")
或者
ControlSend("无标题 - 记事本", "", "Edit1", "This is some text")
例如 点击 "我的窗口" 中控件ID为254的控件
ControlClick("我的窗口", "", "[ID:254]")
或者
ControlClick("我的窗口", "", 254)
例如 设置 .NET Winforms "textBoxFolder" 控件文本为 "C:\Some\Folder"
ControlSetText("我的窗口", "", "[NAME:textBoxFolder]", "C:\Some\Folder")
例如. 单击第二个包含"完成"文本的"按钮"
ControlClick("我的窗口", "", "[CLASS:Button; TEXT:完成; INSTANCE:2]")
使用 ControlGetHandle 函数里可以确定控件的 Handle(句柄) 或者 HWND(窗口句柄). 一个句柄是 Windows 赋予控件的唯一标识符. 创建的每个控件 都有不同的句柄. 使用这个方法来访问控件一般是为对怎么使用 句柄有深刻认识的用户准备的.
请到这里 函数参考\窗口管理\控件相关 查看控件函数列表及说明.