AU3AU3AU3AU3入门教程|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||AU3AU3AU3AU3爱好者联盟虫子樱桃出品1=====前言=====在看这本小小的电子书之前,也许您也和当初的我一样,不知道Au3是何种东西,也许您只是有听说过,却一直没有时间来试一试。结识Au3完全是一个偶然,在去年夏天的时候,偶然在网上看见了SkyFree大大的《Let'sautoit》这本书,没事的时候,看了看,做了点笔记,但是完全不懂。后来第二年我所学的专业要学习网页编程,自己硬着头皮去看了一点VbScript的书籍和视频。后来又迷上系统精简。偶然一天,又得到SkyFree大大的《XP不完全攻略》,里面有Autoit的常用函数,因为好奇,就自己谷歌了一个Autoit的汉化版,照着帮助看,看了好久,完全没有进展,然后就尝试写一些小软件,不明白的就看帮助文档,后来才渐渐得明白---------AU3是要在练习中才能明白的。希望这本小册子一样的电子书,能够让同样喜欢AU3的您,有惊喜,有收获!AU3爱好者联盟虫子樱桃2010年9月26日2目录零、AU3的下载与安装AU3的下载AU3的安装我们的第一个AU3程序一、基本概念变量与常量数据类型判断与循环之判断判断与循环之循环二、常用函数串讲【1】简单的对话框--msgbox函数【2】显示一个输入框--inputbox函数【3】关机函数shutdown【4】执行一个程序【5】将窗口玩转到底--其他几个与窗体相关的函数【7】窗口是这样练成的【8】键鼠模拟--将自动化进行到底【9】字符串操作【10】FileInstall【11】_FileListToArray篇外篇你DllCall了吗?四、后记感谢3零、AU3AU3AU3AU3的下载与安装4AU3AU3AU3AU3的下载Au3的原作者是JonathanBennett及AutoIt小组,他们的官方网站是,呵呵,外国朋友的作品。如果您英语水平好,可以去下载一个原版耍耍,不过俺英文不咋的,虽然说基本上看得明白一些,但是看久了还是会头疼。还好,国人作出了汉化版。大家可以谷歌一下“AUTOIT中文”,找到ACN的官网,然后按照如图示操作5AU3AU3AU3AU3的安装将下载下来的Au3双击运行,安装即可。一般的杀毒软件可能会把AU3AU3AU3AU3报为病毒,设置为信任即可,如果您的杀毒软件直接把Au3Au3Au3Au3给消灭了,建议您卸载该杀毒软件换个小AAAAOROROROR者小红伞或者不玩Au3Au3Au3Au3OROROROR裸奔。....等您的电脑上安装好了Au3,好吧,给自己加油一下!因为前面的一些知识可能因为是理论,比较枯燥,但是请确保您心中只有一个信念:IloveAu3verymuch!我们的第一个AU3AU3AU3AU3程序都说光说不练是假把式,好吧,那咱来写咱们的第一个程序。首先建立一个AU3文件,有两种方法【方法1】在桌面找到SCITE编辑器,选择“文件--新建脚本”然后“文件--文件另存为”即可。当然您可以先写代码,然后再“文件--保存脚本”。呵呵6【方法2】使用这种方法的前提是您之前运行了SCITE编辑器,如果您之前没有运行SCITE编辑器,在新建中是不会有下图中新建的项目的。另外在Win7中好像用AU3好像也有一些问题。至于是啥问题,因为我很久没有用win7了周围也没有用win7的同学,也不好跟大家具体说。O(∩_∩)O~接下来就是输入脚本啦。用SCITE编辑器打开刚才新建的脚本(当然其他文本编辑器也可以,只要文件扩展名是au3就行),输入以下代码:MsgBox(0,hello,我的第一个AU3程序)保存,然后选中脚本文件7运行脚本好了,接下来让我们正式进入AU3的学习!8一、基本概念9变量与常量变量与常量在AU3中都是以“$”为开头的一些东东,那么他们有何区别呢?听俺慢慢道来。变量最近看黑羽的《AS3殿堂之路》里面有一个说法比较形象,原话是:初学者往往误以为变量就是数据,其实上并不是这样,变量好比是一个遥控器,指向我们要操作的数据。对变量进行操作,变量指向的数据就会发生相应的变化。变量必须先申明再使用,不然编译器会报错。那么为什么要先申明变量呢?道理很简单,你必须先告诉FlashPlayer建立一个遥控器,才能给遥控器起名字,并使用这个遥控器。不然,你觉得FlashPlayer能怎么做呢?遥控器连名字都没有。FlashPlayer怎么找到并操作它呢?当然,黑羽说的是ActionScript,不是我们说的AU3(在以后的文章里,我们就使用Autoit通俗的叫法AU3来代替了),但是他们之间是有很多共通之处的。虽然AU3的语法不如ActionScript那样严格,在使用一个变量之前,可以不申明就使用(不申明就使用,就得赋值,当然包括赋值为一个变量与赋值为一个常量,后面我们会讲到),但是我们不建议不申明变量就使用,因为对于很多语法检查严格的脚本甚至语言来说,这样是一个不好的习惯,坏习惯就好像抽烟,是很难戒掉的。您可以把变量想象成一根电线,而把您与电脑分别想成供电器与用电器。简单来说就是下面的图示:图一用户通过变量来给程序提供“电能”。在Au3中申明变量一般使用Dim来进行,当您申明一个变量时,您可以不立即赋值给它,但是您必须申明一下它,这样有两个好处:一是告诉系统,您要建立一个变量,让系统在内存中开辟一个地方,呵呵,就好比您上银行,提前挂个号,而您并不立即去。当然您可以在要使用变量的时候再来申明,不过,当您的代码很长很长的时候,通过查找找变量是件很痛苦的事情。二是,使用变量之前先申明是一个好习惯,因为AU3毕竟只是一种脚本语言而已,很多事情还得靠我们学习高级语言来实现。下面是一些申明变量的正确写法:【1】Dim$a=1Dim$b=2[注]这种方式用在变量比较少的情况下,变量多的时候,咕~~(╯﹏╰)b,不敢想象啊!肯定十分冗长。【2】Dim$a,$b$a=1$b=2[注]这种赋值的形式一般用在变量比较多的时候,各个变量用英文的逗号分隔开来。代码较前者来说会短一点。10【3】Dim$a=1,$b$b=2[注]这种赋值形式,测试可用。是一种不很规范的赋值形式。不推荐使用。常量说完变量,接着我们来说下常量。所谓常量,就是不变的量,O(∩_∩)O~,譬如说我们常见的π,它就是个常量,在Au3中,常量用Const来进行申明。Const告诉系统在内存中开辟一个类似于“一次性存储”(有点像光盘一次性刻录的样子,常量被赋值后,一般是只读的,不会被轻易改变的)的空间。如果对已经申明并赋值的常量进行赋值,脚本将会报错。例如,我们写如下脚本:Const$a=3$a=6MsgBox(0,,$a)运行之,会看见如图二提示:图二同样地,对于一个已经存在的变量,常量也是不能够将其拿来申明的。看看下面例子:Dim$aConst$a=12MsgBox(0,,$a)运行后,出现如图三对话框:图三常量的赋值形式基本和变量的赋值形式差不多,只是Dim被换成Const而已。为节约篇幅,这里就不在赘述了。数据类型11在编程中,存在很多种数据类型,那么多的数据类型有什么用呢?举个例子,譬如说你是个会很多种语言的语言学家,如果你看见黄种人那么你肯定会自然而然地想到用亚洲地区的语言跟他交流。但是如果你没有这个概念,那么你就会一种语言一种语言地使用,跟他交流,这样势必会造成很多麻烦。数据类型就是类似于见到黄种人想到用亚洲语言的思维方式一样的一种东东。也许这种说法不是很妥帖,但是基本就是这个意思。合理使用不同的数据类型,可以提高程序执行效率。数据类型的本质,我觉得就是一种分类,windows的核心我觉得也在于此。(本人不是学编程的,所以说法难免有不妥之处,敬请谅解!)文件管理效率的提高,也通常从分类的详细程度来提高。Au3中数据类型主要有数字型、字符型、布尔型。数字型简单来说,数字型就是我们常见的阿拉伯数字0123456789,呵呵。他们常用来参与数值运算(加减乘除之类的)或者作为排列顺序的工具以及一些函数的参数等。字符型字符型数据即是那些不参与算术运算的字符、汉字、数字等。在AU3中一般字符型数据都由英文的双引号()或者英文的单引号('')包括,未参与数值运算和运算的数字型数据也可看作字符型数据(个人观点,仅供参考)。下面简单列出一些字符型数据欢迎光临Au3爱好者联盟12343*23布尔值布尔值就是“真”和“假”这两位。真的就是true,假的就是false。在二进制中一般用1来表示真,而用0来表示false。如果您认真看帮助的话,您会发现,很多函数都是有返回值的,而且大多数是1表示函数执行成功而用0来表示函数执行失败或者与预期值不一致。当然,布尔值的功能不只于此,它还可以用来作为一个“开关”,这种用法对于一些小程序是很实用的。下面的代码只是示例,不懂没有关系,以后会慢慢讲到。打开AU3自带的SCITE编辑器,输入以下内容:#includeGUIConstants.au3#includeButtonConstants.au3#includeGUIConstantsEx.au3#includeWindowsConstants.au3Dim$Form1,$Button1,$Button2,$cddriveGlobal$status=True$cddrive=DriveGetDrive(cdrom)$Form1=GUICreate(光驱开关,255,83,192,114)$Button1=GUICtrlCreateButton(光驱弹出/关闭,8,24,91,25)$Button2=GUICtrlCreateButton(退出,112,24,75,25)GUISetState(@SW_SHOW)While1$nMsg=GUIGetMsg()Switch$nMsgCase$GUI_EVENT_CLOSEExit12Case$Button1If$status=TrueThenCDTray($cddrive[1],open)$status=FalseElseIf$status=FalseThenCDTray($cddrive[1],closed)$status=TrueElseMsgBox(0,AU3爱好者联盟提示你,程序出错,您可能没有光驱。)EndIfCase$Button2ExitEndSwitchWEnd保存,运行之。呵呵。希望大伙能够喜欢。判断与循环之判断对于我们人来说,判断就是根据由一些客观现象结合自身的道德、理智及自身利益来对一件事情进行的主观感知。对于一个想很好地活在这个世界的人来说,良好的判断是非险恶的能力是必须的。同样地,对于一个程序来说,一个良好的判断机制也是决定其成败与否的要素之一。在AU3,判断主要有以下两种:If判断select与switch判断接下来,我们就分别讲讲它们是怎样的。If判断if判断的基本结构是if...then...endif,意思是“如果..那么...”,懂点英语的兄弟可以看看我这个句子IfIfIfIfititititrainsrainsrainsrains,I'll,I'll,I'll,I'llnotnotnotnotattendattendattendattendthethethethemeetingmeetingmeetingmeeting.逻辑结构是中文表示脚本语言表示如果下雨ifitrainthen--------等价于-------I'llnotatte