控件(Controls)

AutoIt v3 的其中一个最优秀的新功能就是提供了直接操作某些窗口控件的支持。我们在窗口上能看到的东西大多都是以下控件的一种:按钮、列表框、文本编辑框、静态文本等。比如说系统自带的记事本程序的主窗口也不过只是一个相对而言比较大一点的“编辑框(Edit)”控件罢了!正因为 AutoIt 提供了直接对控件操作的途径,我们再也不需要(也不应该)使用模拟键击等低级的方法来操作窗口了,这使得需要实现窗口操作的脚本更加可靠。

 

注意: AutoIt 仅支持标准的 Microsoft 控件 - 有些应用程序(的作者)自己写的自定义控件看起来很像是标准的 MS 控件,但却无法被脚本程序识别,那就只能靠您的经验判断了,实践出真理!

 

运行 AutoIt Window Info 之后您可以试着把鼠标移动到自己感兴趣的窗口上,在 Window Info 的窗口就会显示当前鼠标经过的控件的信息。这些信息包括:

如果你看到某个 Control...() 函数要求提供 控件ID(ControlID)作为参数(实际上大部分控件函数都需要此参数),那么您就可以使用这些信息中的任意一种来作为参数传递到函数中。具体使用哪一种方法其实主要看您的个人喜好以及从 AutoIt Window Info 中能获得的信息类型,一般而言,最好的方法就是使用控件ID(ControlID),但如果控件ID无法获得或者是靠控件ID还不足以保证能识别目标控件(比如说同时有几个控件ID相同的控件存在,这种情况通常发生在静态文本控件上),那么就需要换为另外的三种方法之一了。

 

控件 ID(Control ID)

控件 ID 是指Windows指定给每个控件的数值型标识符(实际上就是整数值)。通常这是用来识别控件的最好的方法。除了 AutoIt Window Info 之外,还有其他的应用程序比如某些给盲人用的读屏软件或者其它使用 Microsoft API 写的工具也能获得控件ID。

 

类别名(ClassNameNN)

每个标准的 Microsoft 控件都具有“类别名”,比如“button(按钮)”或者“edit(编辑框)”等等。在 AutoIt 中还把它跟该控件的“实例”组合起来,并称为“ClassNameNN”。比如说某个对话框的上面有三个按钮,则通常它们的“ClassNameNN”就是"Button1", "Button2", "Button3"如此之类。

当控件ID不适用的时候就可以考虑使用这个方法(这种情况通常发生在静态文本控件上)。

 

文本(Text)

也许你也注意到 AU3Info(AutoIt Window Info) 还给出了控件上的文本信息,例如某个按钮 Next 则在 AU3Info 上看到的就是 &Next (“&”号表示后面跟着的字符将带有下划线,其实我们还能在菜单和其它控件上发现这个符号)。如果您喜欢的话也可以用这些文本代替“ClassNameNN”来识别控件,但是如果有多个控件的文本都相同的话可就有麻烦了。

 

控件句柄(Control Handle (HWND) )

如果要获得某个控件的句柄则可使用 ControlGetHandle 函数。控件句柄是Windows赋予控件的(独一无二的)标识符。每个被创建的控件都具有不同的句柄。用户在使用控件句柄来对控件操作之前应该确定自己对句柄是非常熟悉的。

 

 

请到这里 函数说明(Function Reference) \ 窗口管理(Window Management) \ 控件(Controls) 查看控件函数的说明。