前言:据我了解需要编写AutoHotkey/AutoIt脚本来实现自动化操作的用户很多都是网管,其它则可能是一些个人用户,他们一般都具有相当的技术水平,而且都希望能借助脚本来完成某些以往需要人工操作的重复性劳动,但限于语言条件上的限制可能对官方的帮助文档有较难理解之处。为方便读者,我将从最简单的说起,每个示例尽可能同时给出相应的AHK和AU3版本代码。本文将尽可能用较通俗的语言描述,但并不打算讲解语法基础,所以不一定适合新手阅读。
文中涉及到的AHK/AU3版本:
AutoHotkey
1.0.44 .08
AutoIt
3.1.1
[size=14pt]一、关于脚本[/size][size=14pt] [/size]
[size=12pt]1[/size][size=12pt]、什么是脚本?[/size]
这是个非常“流行”的术语了,通俗而言脚本([size=10.5pt]Script[/size])一般都是指根据某种语法规则编写的具有特定格式的文本文件。可能大家已经听说过很多种脚本:[size=10.5pt]VBScript[/size]、[size=10.5pt]JScript[/size]、[size=10.5pt]PHP[/size]、[size=10.5pt]ASP[/size]、[size=10.5pt]JSP[/size]、[size=10.5pt]CGI[/size]、[size=10.5pt]CS[/size]脚本,甚至游戏外挂脚本。[size=10.5pt] [/size]
这些脚本文件都是可执行文件,可执行相应的操作。[size=10.5pt]
AHK [/size]脚本文件扩展名:[size=10.5pt]*.ahk
AU3 [/size]脚本文件扩展名:[size=10.5pt]*.au3
[/size]
[size=12pt]2[/size][size=12pt]、脚本和程序的不同?[/size]
严格来说,所谓“程序”就是指以各种编程语言(比如说[size=10.5pt]C/C++/C#/Delphi[/size])编写、由编译器编译好后的二进制文件,一般就是机器代码,可由系统执行。而脚本则是只是些纯文本文件,包含了各种定义好的命令,这一点很像批处理文件。这样,我们得出一个简单的结论,那就是用户一般无法获得“程序”的源代码,我们只能进行反汇编把它逆向还原为汇编语言代码(或其它),当然,也有些“程序”是可以获得源代码的(比如[size=10.5pt]Java[/size]);脚本则是用户可直接查看的代码文件,而[size=10.5pt]AHK/AU3[/size]则提供了把脚本文件“转换”成[size=10.5pt]exe[/size]文件的方法。[size=10.5pt]
[/size]
[size=12pt]3[/size][size=12pt]、脚本如何运行?[/size][size=12pt] [/size]
脚本是“解释性”的语言,它的运行依赖一个“解释器”,由这个解释器来“翻译并解释”脚本的每条命令(或者说代码),然后执行相应操作。如果不严格定义的话,[size=10.5pt]HTML[/size]和[size=10.5pt]Java[/size]都可以认为是解释性语言。[size=10.5pt]AHK/AU3[/size]的主程序(分别是[size=10.5pt]AutoHotkey.exe[/size]和[size=10.5pt]AutoIt3.exe[/size])就是它们的“解释器”,上面提到脚本可“转换”成可脱离相应的解释器而独立运行的[size=10.5pt]exe[/size]可执行文件,而我们还可以使用相应的工具把它们“还原”成脚本文件,由此我们完全可以这么理解:脚本代码是被“压缩”到这个[size=10.5pt]exe[/size]文件中,解释器也是在里面,在运行[size=10.5pt]exe[/size]时实际上是先“解压”脚本代码然后运行解释器并解释该脚本。[size=10.5pt]
[/size]
[size=12pt]4[/size][size=12pt]、如何创建脚本?[/size][size=12pt] [/size]
使用资源管理器的右键菜单即可创建相应脚本文件,或者新建一个文本文件后改扩展名即可。[size=10.5pt] [/size]
[size=12pt]5[/size][size=12pt]、稍微介绍一点语法规则?[/size][size=12pt] [/size]
[size=10.5pt]A[/size])对[size=10.5pt]AHK[/size]而言,每个内建的功能都是以“命令”的形式提供:[size=10.5pt] [/size]
[size=10.5pt]Command, param1, param2,… [/size]
而[size=10.5pt]AU3[/size]则以“函数”的形式提供:[size=10.5pt] [/size]
[size=10.5pt]Function(param1, param2, …) [/size]
命令或函数中被符号“[size=10.5pt][[/size]”和“[size=10.5pt]][/size]”围住的参数是可选参数,表示在使用这些命令或函数时可省略它们(不给出具体数值)。[size=10.5pt] [/size]
若某个参数含有空格,则最好使用双引号围住该参数。[size=10.5pt] [/size]
[size=10.5pt]B[/size])解释器自上而下(从第一行到最后一行)“解释”脚本的每行语句,除非遇到“[size=10.5pt]Return[/size]”、“[size=10.5pt]Goto[/size]”、“[size=10.5pt]Gosub[/size]”、“[size=10.5pt]Exit[/size]”等语句、函数、热键或其它能使脚本“跳”到某个标识符的条件成立。[size=10.5pt]
C[/size])关键字和标识符(包括变量名、命令名、函数名等)都不区分大小写。
|