AU3入门教程

          时间:2017-04-05 02:39:27 文章来源:经验分享 文章作者:admin 点击次数:

            其实 AutoIt v3(AU3)已经不是一种简单的脚本语言了,AU3 在 GUI 界面方面也是很有效果的,不过我在这一节中只介绍 AU3 的一些常用的基本用法,如果您想了解更多关于 AU3 编程的信息和方法,请参阅 AU3 的帮助文档——这真的是一篇很全面的帮助文档。

            在这一节中,我将和大家一起学习 AU3 的一些基本使用方法,不求多,只求常用、好用、好学,这一节的目的,旨在可以让大家和我一起在 Windows 环境下让 AU3 彻底替代批处理。在 Windows 环境下?#38376;?#22788;理难看的黑框见鬼去吧~~。

            学习任何一门语言,基本上所要做的第一件事,就是在 10 ?#31181;?#20869;学会如何用这门语言编出一个可以显示“Hello World !”的小程序,当然,我们学习 AU3 的基本使用方法,这个就不例外了。

            AU3 的源码,可以使用记事本直接编辑——其实很多语言的源码也都可以直接使用纯文本文档来编辑,不过我个人并不建议初学者使用记事本,编写 AU3 源码,有一个非常好的文本编辑器,SCITE。SCITE 是一个类似记事本的小程序,它会用不同颜色标记您所编写的 AU3 源码中的不同类别的命令,而且它内置记录了许多 AU3 的函数与指令,在您编写 AU3 源码时可以提供给您很大的帮助。

            好的,下面我们打开 SCITE 编辑器,我们将会得到一个类似记事本的界面,下面,我们就可以编写 AU3 源码了。大家跟我写下如下代码:

            MsgBox(0,"我的第一个 AU3 程序","Hello World !")

            写好后保存,保存后,这将是一个以 AU3 为后缀的文件,例如我们将它命名为 Skyfree.au3,不过这个程序还不能运行,它只是源码,我们必须将它转化为可执行文件,也就是EXE 文件,它才会正常运?#23567;?#36825;个由源码转换为可执行文件的过程,也就是我们经常听到高手口中所说的“编译”了。

            如何执行编译呢?我们可以右键单击 Skyfree.au3 这个 AU3 源码文件,然后会出现“编译脚本”这个选项,我们单击“编译脚本”,几秒钟,这个Skyfree.au3 源码文件就被编译成了 Skyfree.exe 文件了。

            双击 Skyfree.exe 文件,立刻会弹出来一个对话框,上面写着“Hello World”。

            怎么样,是不是很神奇,我们的第一个 AU3 程序就这么写出来了,简单吗?

            其实编程就是这么简单,不要在某些高手的神话传说和谆谆教诲下感觉编程很神秘了,只要有耐心和恒心,菜鸟照样玩编程。

            不过这一节我也不是来领着大家做游戏的,这一小节有几个很重要的概念信息我再来重复一下,一个是源码,一个是可执行程序,从源码到可执行程序,需要一个过程,这个过程叫做“编译”。

            1. AutoIt v3 入门

            1> 数据类型

            任何编程语言都有数据这个概念,当然,任何编程语言都讲究数据类型,AU3 也一样,不过 AU3 对数据类型的分类比较简单,在 AU3 中,数据大概分成四类:数字类型、字符串类型、布尔值、二进制类型..

            数字类型,顾名?#23478;澹?#23601;是数字,例如 1、2、3.4、5 等等,AU3 对数字类型没有再进行详细的分类(很多语言中都将数字类型再详细分为整形、浮点型等等),这给初学者带来了不少方便,只记住数字类型就是我们常说的“数”就可以了。

            字符串类型,字符串即使一串字符,例如 ABCDE、Skyfree、SK1023Y 等等,这些都是字符串,这个是很好理解的,不过大家应该分清楚一点,就是数字 1 和字符 1 是有区别的。

            布尔类型,不要被这个名字搞乱了,所?#35762;?#23572;类型的值,就是 True(真)和False(假)这两个值,这在进行数据判断的时候十分有用。

            二进制类型我们很少用到,本着不常用的不浪费我们时间的原则,这个我就不多废口水了,有兴趣的朋友可以参考 AU3 帮助文档中的相应?#24471;鰲?/p>

            2> 变量

            说完了数据类型,终于可以说数据了。

            所谓变量,就是在程序运行过程中其值可以改变的量——简单了说就是可以变的量就是变量(……好像废话)。我们可以定义一个变量,例如,

            Dim $Skyfree

            $Skyfree 就是一个变量,Dim 是定义变量的意思。在程序运行过程中,我们可以将 1 这个值赋给$Skyfree 这个变量,

            $Skyfree=1

            这时$Skyfree 就代表着 1 这个值,不过由于$Skyfree 是变量,我们可以在?#25105;?#25105;们?#19981;?#30340;时刻将 2 再?#25345;?#32473;$Skyfree,

            $Skyfree=2

            再次?#25345;到?#26463;后,$Skyfree 就代表着 2 这个值。

            ?#26723;?#36825;里,大家大概明?#36164;?#20040;叫变量了吧。大家就随?#32622;?#21517;几个变量吧。

            不过有一点要说的是,AU3 的变量命名有它的规则,不符合命名规则的变量将不被称之为变量

            AU3 的变量命名规则是:

            以$开头的,字?#28014;?#25968;字、下划线组合,例如$Sky、$Sky_Free、$Sky1023 这些都是合乎 AU3 变量命名规则的变量。

            3>常量

            明白了什么是变量,常量的意义就很好解释了。

            常量,就是在程序运行过程中其值不能被随意改变的量。我们可以定义一个常量,例如,

            Const $Skyfree=1

            常量一旦被?#25345;擔?#22312;整个程序运行过程中其值将不能被改变。当然,常量的命名也有它的规则,常量的命名规则与变量相同。

            4>数组

            数组这个概念可能稍微难理解一些,我们先来看一个简单的例子:

            Dim $Sky[3]

            $Sky[0]=17

            $Sky[1]=21

            $Sky[2]=65

            最初,我们以 Dim $Sky[3]定义了一个包含三个元素的数组 Sky[3],这三个元素的名字分别为Sky[0]、Sky[1]、Sky[2],然后我们分别将 17、21、65 ?#25345;?#32473;他们。

            到这里,大家也大概看出来什么是数组了,所谓数组,就是以一个名字命名一组变量,就像 Sky 这个数组名,这个数组包含从 0 到(数组元素数量1),例如 Sky[3],那么其中的元素就是从 Sky[0]~Sky[31]。

            如果说的再简单点,就是一组使用着同一个变量名的变量(例如数组 Sky[3]中的每一个元素都使用Sky 这个变量名),为了区别这一组的每一个变量,使用一个序号来唯一标识这个元素(例如 Sky[1]和Sky[2],虽然都使用 Sky 这个变量名,但它们使用[1]和[2]来区别彼此)。

            数组的运用十分广泛,通常一个数组里存储着一组有关系的数据,或者有着一定相似性的数据。

            如果您现在还不能完全理解数组,也没关系,随着对 AU3 程序理解的深入,会慢慢理解数组这个概念的。

            5>运算符

            数据运算:

            = ?#25345;?#36816;算,将“=”右边部分的值赋给左边

            + 加法运算, $S=2+3

            减法运算, $S=2-3

            * 乘法运算, $S=2*3

            / 除法运算,$S=2/3

            & 字符串连接运算,$St=”ABC” & “DEF” & “123”

            ^ 冥运算,$S=2^3(2 的三次方)

            布尔运算:(返回 True 或者 False 值)

            = 判断左右?#35762;?#30340;值是否相等,如果左右?#35762;?#20026;字符串,则不区分大小写比较

            == 判断左右?#35762;?#30340;值是否相等,如果左右?#35762;?#20026;字符串,则区分大小写比较

            <> 判断左右?#35762;?#26159;否不等于

            >

            判断左侧是否大于?#20063;?/p>

            >= 判断左侧是否大于等于?#20063;?/p>

            < 判断左侧是否小于?#20063;?/p>

            <= 判断左侧是否小于等于?#20063;?/p>

            逻辑运算:

            AND 与运算,只有“AND”?#35762;?#30340;值都为“真”时,才返回“真”,否则返回“假”

            OR 或运算,当“OR”?#35762;?#21482;要有一侧为“真”?#26412;头?#22238;“真”,否则返回“假”

            NOT 非运算,NOT 真为假,NOT 假为真

            这些运算符是有优先级一说的,就像我们小学所学的“先乘除后加减”一样,这些运算符的优先级

            如下,自上而下优先级?#26469;谓档停?#21516;级自左向右优先级?#26469;谓档停?/p>

            NOT

            ^

            * /

            +

            &

            < > <= >= = <> ==

            AND OR

            牢记这些优先级,否则很容易在以后的编程中造成混淆。

            2. 顺序结构、选择结构、循?#26041;?#26500;入门

            所有的编程语言都遵守这三种代码结构,我将在下面一一介绍。

            1>顺序结构

            顺序结构是十分简单的结构,就像批处理一样,一条一条的运行所写下的代码,脚本运行时,就会

            一条一条的运行代码,例如:

            Dim $S,$a,$b

            $a=1

            $b=2

            $S=$a+$b

            MsgBox(0,"运算结果",$S)

            这是个简单的程序,定义了变量$S,$a,$b,再分别将 1 和 2 ?#25345;?#32473;$a,$b,然后计算$a 和$b 的和,并将这个和复制给$S,最后使用一个窗口将这个和显?#22659;?#26469;。

            程序从第一行定义变量到最后一行显示$S 的值?#26469;?#25191;行下来,这就是顺序结构,也是一个程序里最基本的结构。

            2>选择结构

            选择结构中我只介绍 If…Then…结构,这个是极为常用的选择结构,十?#31181;?#35266;。选择结构里还有Select…Case…这种结构,?#34892;?#36259;的朋友可以参照 AU3 帮助文档。

            If…Then…的基本语法是:

            If [条件] Then

            [语句段 1]

            Else

            [语句段 2]

            EndIf

            If 后面跟一个条件,如果这个条件的结果为真,则执行语句段 1,否则将执行语句段 2,Else 和语句段 2 这两者不是必须的,下面举两个简单的例子:

            Dim $a

            $a=5

            If $a>3 Then

            MsgBox(0,"选择结构示例","大于 3")

            Else

            MsgBox(0,"选择结构示例","小于或等于 3")

            EndIf

            运行这个程序,则会出现一个对话框,对话框中显示为“大于 3”。

            随后我们可以将一个小于 3 的数例如 2 复制给$a,如下:

            Dim $a

            $a=2

            If $a>3 Then

            MsgBox(0,"选择结构示例","大于 3")

            Else

            MsgBox(0,"选择结构示例","小于或等于 3")

            EndIf

            再运行这个程序,对话框将显示为“小于或等于 3”。

            只要理解了 If…Then…这个最基本的选择结构语句,就能做一些简单的判断了。其实 If…Then…语句还有很多其他模式,例如 If…Then…ElseIf…Then….Else…Endif 等,不过只要理解了 If…Then…一切?#21152;?#20995;而解。

            3>循?#26041;?#26500;

            循?#26041;?#26500;我只介绍最常用的 While…Wend 循环和 For…Next 循环,其他的循?#26041;?#26500;控制语句,如果有需要可以参考 AU3 帮助文档。

            While…Wend,语法:

            While [条件]

            [语句段]

            Wend

            这个语句中,While 后的[条件]只要为真,则会循?#20998;?#34892;[语句段],直到[条件]为假才结束循环,如果无论怎么循环[条件]都始终为真,则这个循环会成为死循环,这样会造成系统资源耗尽而死机或者其他情况。

            举个例子,例如我们想计算 1+2+3+…..+100 的结果,如下:

            Dim $i,$Sum

            $i=1

            $Sum=0

            While $i<=100

            $Sum=$Sum+$i

            $i=$i+1

            WEnd

            MsgBox(0,"计算 1+2+...+100 的和",$Sum)

            这个例子中,我们首先定义了$i 和$Sum 这两个变量,随后我们将他们赋以最初值,$i=1、$Sum=0,

            然后进入了 While 循环,在每次循环中$Sum 会被赋予当前$Sum 的值与$i 值的和,而每次循?#26041;?#26463;后$i 的值都会被+1,这样,$i 会?#26469;?#34920;示 1、2、3…这些值(注意,这些$i 的值都<=100,所以循环会继续执行),而$Sum 会记录从 1+2+3+…的值。在第 100 次循?#26041;?#26463;时,也就是$i=$i+1 运行到第 100 次时,

            此时$i 的值为 101,那么第 101 ?#25628;?#29615;运行前检测 While 后的条件$i<=100 时,这个条件将不符合,不符合 While 后面的条件,也就是 While 后面的条件为假时,则退出循环。退出循环后运行 MsgBox 这一行,这样就将$Sum 的值,也就是 1+2+3+…+100 的值显示在弹出的对话框中。

            下面,我们来看一下 For…Next 循环

            For…Next,语法:

            For [变量]=[初值] To [终值] [Step [步进值]]

            [语句段]

            Next

            For…Next 循?#26041;?#26500;经常与数组一起使用,例如:

            Dim $Sky[5],$i,$Sum

            $Sky[0]=10

            $Sky[1]=20

            $Sky[2]=30

            $Sky[3]=40

            $Sky[4]=50

            $Sum=0

            For $i=0 To 4

            $Sum=$Sum+$Sky[$i]

            Next

            MsgBox(0,"For...Next 循?#26041;?#26500;范例",$Sum)

            这个例子中,首先我们定义了$Sky 数组,这个数组包含 5 个元素,然后我们又定义了$i 和$Sum 这两个变量,分别用来计数和计算和值。接着我们为$Sky 中的 5 个元素赋了初始值,以及为$Sum 赋了初始值。进入 For 循环,循环一共进行了 5 次,5 次中$i 分别等于 0、1、2、3、4,在这 5 次循环中,$Sum

            ?#26469;?#35760;录$Sky[0]、$Sky[1]、…$Sky[4]的和值。5 次循?#26041;?#26463;后,使用 MsgBox 语句将$Sum 结果显示在对话框中。

            3. 常用的 AU3 函数

            什么是函数?很多人初接触编程对这个存在很大的疑惑。

            举个简单的例子,有一个制造桌子的工厂,你从这边将木材送进去,就会从工厂的那边生产出桌子来,如果你送进去檀木,那么就会生产出檀木桌子,如果你送进去红木,那么就会生产出红木的桌子。

            这个工厂就是函数,我们送进去的?#23601;?#23601;是函数的参数,工厂生产出来的桌子就是函数的返回值。

            我们不必知道工厂的内部结构,也不必知道桌子的生产过程,我们只需要调整?#23601;?#30340;类型,就可以生产出不同的桌子。也就是说,我们不必知道函数的工作原理,而只需要调整参数,就能得到我们想要的结果。

            AU3 提供了大量的函数,这些函数很方便,但是 AU3 的函数有几百个,全部记住反正?#25910;?#25105;这样的破?#28304;?#26159;不行,下面我列举一些十分常用的 AU3 函数及其常用参数,大家如果懒得记忆全部 AU3 函数,就记住这些常用的就可以。

            1>EnvGet

            作用:获取当前环境变量的值

            语法:EnvGet ( "环境变量" )

            范例:

            $SysDrv= EnvGet("systemdrive")

            运行完成后,$SysDrv 将记录环境变量%SystemDrive%的值,如果系统盘为 C 盘,则$SysDrv 的值

            为“C:”

            2>EnvSet

            作用:设置环境变量和其值

            语法:EnvSet ( "环境变量" [, "值"] )

            范例:

            EnvSet ("TEMP ", EnvGet("systemdrive") & ”\Windows\Temp”)

            运行完成后,%TEMP%这个环境变量的值将被修改,如果系统盘为 C 盘,则%TEMP%的值为

            “C:\Windows\Temp”

            3>DirCopy

            作用:复制指定目?#25216;?#20854;所有子目录和文件

            语法:DirCopy ( "源目录", "目标目录" [, 标志] )

            参数:

            [标志],为 0(默认)时不覆盖已有的文件夹,为 1 则覆盖

            范例:DirCopy("C:\Skyfree","D:\Skyfree",1)

            4>DirCreate ( "路径" )

            作用:创建文件夹

            语法:DirCreate ( "路径" )

            范例:DirCreate ("C:\Skyfree" )

            5>DirGetSize

            作用:返回指定目录的占用空间大小(单位: 字节)

            语法:DirGetSize( "目标路径" )

            范例:

            $Size = DirGetSize("C:") / 1024 / 1024

            由于 DirGetSize 返回值的单位是字节,所以我们需要连续除以两次 1024 才能得到 MB 级别的剩余

            空间

            6> DirMove

            作用:移动指定目?#25216;?#20854;所有子目录和文件

            语法:DirMove ( "源目录", "目标目录" [, 标志] )

            参数:

            [标志],为 0(默认)时不覆盖已有的文件夹,为 1 则覆盖

            范例:DirMove ("C:\Skyfree","D:\Skyfree",1)

            7> DirRemove

            作用:?#22659;?#19968;个目录/文件夹

            语法:DirRemove ( "路径" [, 递归遍历] )

            参数:

            [递归遍历],0 则不?#22659;?#20854;子文件和文件夹,1 则?#22659;?/p>

            范例:DirRemove("C:\Skyfree", 1)

            8>DriveGetFileSystem

            作用:返回指定驱动器的文件系统类型

            语法:DriveGetFileSystem ( "路径" )

            返回值:

            1(数字),未知的文件格式

            FAT,FAT 格式

            FAT32,FAT32 格式

            NTFS,NTFS 格式

            CDFS,CD 格式

            UDF,DVD 格式

            范例:$Format=DriveGetFileSystem ( "C:\" )

            9>DriveGetType

            作用:返回指定驱动器的类型

            语法:DriveGetType ( "路径" )

            返回值:

            "Unknown" (未知类型)、"Removable" (可移动)、"Fixed" (固定的)、"Network"(网络)、"CDROM"

            (光驱)、"RAMDisk"(内存盘)

            范例:$Type=DriveGetFileSystem ( "C:\" )

            10> DriveSpaceFree

            作用:以 MB(兆字节)为单位返回指定路径所在分区的剩余空间

            语法:DriveSpaceFree ( "路径" )

            范例:

            $FreeSpace= DriveSpaceFree ( "C:\" ) / 1024

            这样将获得 GB 级别的剩余体积

            11> FileCreateShortcut

            作用:创建指定文件的快捷方式(.lnk 文件)

            语法:FileCreateShortcut ( "目标文件", "lnk 文件" [, "工作目录"])

            范例:

            FileCreateShortcut("D:\360safe\360Safe.exe",@DesktopCommonDir & "\360 安全卫士.lnk","D:\360safe")

            12>FileCopy

            作用:复制一个或多个文件

            语法:FileCopy ( "源文件", "目标路径" [, 标志] )

            参数:

            [标志] 0 = (默认) 不覆盖存在的文件

            1 = 覆盖存在的文件

            8 = 如果目标文件夹不存在,就先创建 (查看注意部分)

            范例:

            FileCopy("C:\Skyfree.esp","D:\Skyfree.esp",1)

            13> FileDelete

            作用:?#22659;?#19968;个或多个文件

            语法:FileDelete ( "路径" )

            范例:FileDelete("C:\Skyfree\Skyfree.esp")

            14> FileExists

            作用:检查指定文件或目录是否存在

            语法:FileExists ( "路径" )

            返回值:存在则返回 1(真),不存在则返回 0(假)

            范例:

            If FileExists("C:\Skyfree\Skyfree.esp ") Then

            MsgBox(0, "", "存在")

            Else

            MsgBox(0,"", "不存在")

            EndIf

            15>FileMove

            作用:移动一个或多个文件

            语法:FileMove ( "源文件", "目标路径" [, 标志] )

            参数:

            [标志] 0 = (默认) 不覆盖存在的文件

            1 = 覆盖存在的文件

            8 = 如果目标文件夹不存在,就先创建 (查看注意部分)

            范例:

            FileMove ("C:\Skyfree.esp","D:\Skyfree.esp",1)

            16> FileSetAttrib

            作用:修改一个或多个文件的属性

            语法:FileSetAttrib ( "文件", "+RASHNOT" )

            参数:

            "R" = READONLY(只读)

            "A" = ARCHIVE(存档)

            "S" = SYSTEM(系统文件)

            "H" = HIDDEN(隐藏文件)

            "N" = NORMAL(普通)

            "O" = OFFLINE(脱机文件)

            "T" = TEMPORARY(临时文件)

            + 增加属性,例如+R、+S、+H

            去除属性,例如R、S、H

            范例:

            FileSetAttrib("C:\Skyfree.esp","+RSH")

            FileSetAttrib("C:\Skyfree.esp","RSH")

            17>IniRead

            作用:从某标准配置文件(*.ini)中读取某个数值

            语法:IniRead ( "文件名", "字段名", "关键字", "默?#29616;?quot; )

            范例:

            IniRead("C:\Windows\AllUsrRun.ini","PreSetup","Exe","NA")

            这行语句的意思是从 C:\Windows\AllUsrRun.ini 这个配置文件中寻找 PreSetup 段, 再从PreSetup 这段下寻找 Exe 关键字,随后读取 Exe 关键字对应的值,如果 Exe返回“NA”。

            关键字的值为空则IniRead 是十分常用的函数,常用于读取外部配置文件以改变程序运行的方法。

            18> IniWrite

            作用?#21512;?#26576;标准配置文件(*.ini)中写入某个数值

            语法:IniWrite ( "文件名", "字段名", "关键字", "数值" )

            范例:

            IniWrite("C:\Sysprep\AutoSysprep.ini","SK3","UnDev","True")

            IniWrite和IniRead 是对应的,IniWrite 用来写配置文件 ,上面语句的意思是 寻找c:\Sysprep\AutoSysprep.ini 这个配置文件,并寻找 SK3 这一段,再由 SK3 段中寻找 UnDev项并把这项的值设置为 True。

            19> Random

            作用:产生一个伪随机的浮点数

            语法:Random ( [最小值 [, 最大值 [, 标志]]] )

            参数:

            最小值,随机数的最小值,默认为 0

            最大值,随机数的最大值,默认为 1

            标志,设为 1 则返回整数,默?#26174;?#36820;回一个浮点数

            范例:

            $Rs=Random(2,5,1)

            上述语句将随机选取 2 到 5 之间的一个整数?#25345;?#32473;$Rs。

            20>InputBox

            作用:显示以一个输入框以供用户输入数据

            语法:InputBox ( "标题", "提示信息" [, "默认数据" [, "密码字符" [, 宽度, 高度 [, 左边, 上边 [, 超

            时时间]]]]] )

            参数:

            标题,输入框的标题文字

            提示信息,提示用户程序需要获得的数据

            默认数据,显示在输入文本框中的默认文字

            密码字符,[可选参数] 显示在输入文本框中用?#28304;?#26367;用户输入字符的字符。如果要正常显示字符只需定义此参数为空字符串""(默认)或空格字符即可。 如果此参数被设为多字符的字符串则只有第一个字符才有效。第二个字符及后面的其它字符有其它特殊用?#23613;?#35831;查看下面的注意部分

            宽度, 可选参数] 窗口宽?#21462;?#22914;有指定此参数则高度参数也必须指定。指定 1 则表示使用默认宽度

            高度, 可选参数] 窗口高?#21462;?#22914;有指定此参数则宽度参数也必须指定。指定 1 则表示使用默认高度

            左边, 可选参数] 输入框左边离屏幕左边的距离(象素)。默认情况下,输入框是居中显示的,如有指定此参数则 上边 参数也必须指定上边, 可选参数] 输入框上边离屏幕左边的距离(象素)。默认情况下,输入框是居中显示的,

            如有指定此参数则 左边 参数也必须指定

            超时时间,[可选参数] 以秒为单位。指定时间过后输入框将自动关闭

            范例:

            $passwd = InputBox("权限核查", "请输入密码:", "", "*")

            21>MsgBox

            作用:显示一个简单的对话框(可设置超时属性)

            语法:MsgBox ( 标志, "标题", "文本" [, 超时时间] )

            参数:

            标志,标志是几个值的加和,我只介绍最常用的两类值,如果有更多的需要请参阅 AU3 帮助

            文件。一个是要显示的按钮的对应值,一个是要显示的提?#23601;?#26631;对应的值。

            表如下:

            按钮对应的值:

            0=确定

            1=确定 和 取消

            2=终止、重试、忽略

            3=是、否、取消

            4=是 和 否

            5=重试 和 取消

            6=取消、重试、继续

            提?#23601;?#26631;对应的值:

            0=(无图标)

            16=警告标志(一般用于错误提示)

            32=问号图标

            48=感叹号图标

            64=由一个“i”和圆圈组成的图标(消息通知)

            返回值:

            这些返回值代表着所按下的按钮,

            OK(确定)=1

            CANCEL(取消)=2

            ABORT(终止)=3

            RETRY(重试)=4

            IGNORE(忽略)=5

            YES(是)=6

            NO(否)=7

            TRY AGAIN (重试)=10

            这两个值的列

            范例:

            CONTINUE (继续)=11

            $Flag=MsgBox(4+32,"驱动包?#22659;?quot;,"是否要?#22659;?#31995;统驱动包备份?")

            If $Flag=6 Then

            DirRemove("C:\Drivers",1)

            EndIf

            这个例子中,$Flag 用来记录 MsgBox 执行后的返回值,MsgBox 由于我的标志选择了 4+32,这将意味着这个 MsgBox 框中会有 Yes 和 No 两个按钮并且提示标志是一个“?”,在随后的判断中 , $Flag如果等于6 ,则代表我在MsgBox 中单击了Yes这个按钮 ,这将执行DirRemove("C:\Drivers",1),否则将不执?#23567;?/p>

            22> ToolTip

            作用:在屏幕的?#25105;?#20301;置显示一个工具提示

            语法:ToolTip ( "文本" [, X 坐标 [, Y 坐标 [, "标题" [, 图标 [, 选项]]]]] )

            参数:

            文本,工具提示的文本(如果是空字符串则清除现有的工具提示)

            X,Y 坐标,[可选参数] 工具提?#22659;?#29616;位置地 X 和 Y 坐标

            标题,[可选参数] 工具提示的标题, 需要 IE5+支持

            图标,可选参数] 预定义标题显示的图标: 需要 IE5+支持. 需要设置一个标题,0= 没有图标,

            1 = 信息图标, 2 = 警告图标, 3 = 错误图标

            选项=[可选参数] 为不同的显示类型设置不同的显示选项:

            1 = 显示气泡提示, 需要 IE5+支持

            2 = 在 X,Y 坐标中,居中显示提示.而不是在左上角显示.

            4 = 如果有必要,强制显示工具提示总是可见,如果有多个显示器并且工具提示显示于屏幕边界,

            那么在另外的显示器上面?#19981;?#26174;示. 这个选项不能工作于 Windows 95 或者 Windows NT. 在那些

            ?#25945;?工具提示只能限制在主显示器里面

            范例:

            TooTip 可以很简单帮我们做出来一些提示,这些提示有些事后很有用。

            ToolTip(@CR&" " & " 正在安装AMD双核驱动 ..." & " "&@CR, @DesktopWidth260,

            @DesktopHeight120)

            23> RunWait

            作用:运行一个外部程序并暂停脚本的执行直至该程序执行完毕

            语法:RunWait ( "文件名" [, "工作目录" [, 标志]] )

            参数:

            文件名,可执行文件的完整路径(文件格式为 EXE、BAT、COM 或 PIF)

            工作目录,[可选参数] 工作目录。

            标志,[可选参数] 启动程序时的初始状态:

            @SW_HIDE = 隐藏窗口

            @SW_MINIMIZE = 最小化窗口

            @SW_MAXIMIZE = 最大化窗口

            范例:

            RunWait("C:\Skyfree\1.exe","",@SW_HIDE)

            RunWait("C:\Skyfree\2.exe","",@SW_HIDE)

            隐藏运行 1.exe,1.exe 运行完?#26174;?#38544;藏运行 2.exe。

            还有一个 Run 函数,和 RunWait 类似,只是 Run 函数只调用外部程序运行而不等待这个外部程序的运行结束。

            24>Shutdown

            作用:关机操作

            语法:Shutdown ( 参数 )

            参数:

            0 = Logoff(注销)

            1 = Shutdown(关机)

            2 = Reboot(重启)

            4 = Force(强制执行)

            8 = Power down(关机)

            32= Suspend(待机)

            64= Hibernate(休眠)

            范例:

            Shutdown(Reboot)

            25>RegDelete

            作用:从注册表中?#22659;?#25351;定键值

            语法:RegDelete ( "键名" [, "值项"] )

            范例:RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE", "TestKey")

            26>RegRead

            作用:读取注册表指定的值

            语法:RegRead ( "键名", "值项" )

            范例:

            $Reg = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion",

            "ProgramFilesDir")

            27> RegWrite

            作用:创建一个主键、子键或值项

            语法:RegWrite ( "键名" [,"值项", "类型", 数据] )

            参数:

            类 型 , [ 可 选 参 数 ] 目 标 值 项 的 数 据 类 型 , 比 如 : "REG_SZ" 、 "REG_MULTI_SZ" 、

            "REG_EXPAND_SZ"、"REG_DWORD" 或 "REG_BINARY"。

            范例:

            RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey", "REG_SZ", "Hello this is a

            test")

            28>StringInStr

            作用:检查某个字符串是否含有给定的子串

            语法:StringInStr ( "字符串", "子串" [, 区分大小写 [, 出现次序]] )

            参数:

            字符串,目标字符串。

            子串,要搜索的子串。

            区分大小写,[可选参数] 指定匹配操作是否要区分大小写。

            0 = 不区分大小写(默认)

            1 = 区分大小写

            2 = 不区分大小写, 使用基本/快速的比较方法

            出现次序,[可选参数] 指定要提取目标字符串中第几个匹配的子串。若给定的是负数则表示

            要从字符串右边开始搜索。默?#29616;?#20026; 1(搜索第一个匹配的子串)。

            返回值:包含则返回 1(真),不包含则返回 0(假)

            范例:

            If StringInStr("nVIDIA Geforce 8600GTS","nVIDIA") Then

            $SndName="nVIDIA"

            EndIf

            29>StringLen

            作用:返回指定字符串的字符总数

            语法:StringLen ( "字符串" )

            范例:

            $Length=StringLen("Skyfree")

            此时,$Length 的值应该为 7

            30>StringMid

            作用:取某个字符串的部分字符

            语法:StringMid ( "字符串", 起始位置 [, 数量] )

            范例:

            $S=StringMid("Skyfree",4,4)

            此时,$S 的值应该为“free”

            31>Sleep

            作用:使脚本暂停指定时间段

            语法:Sleep ( 延迟 )

            范例:

            Sleep(3000)

            暂停脚本运行 3 秒,注意,参数里的“延迟”是以毫秒为单位的

            好了,终于把 AU3 常用的函数介绍完了,是不是看得有点晕了,这 31 个函数是所有 AU3 函数中

            相对常用的,AU3 的函数十分的多,而且功能十分的多,如果想要了解关于更多 AU3 函数的知识,可

            以参阅 AU3 帮助文档。

            4. AU3 中的宏

            什么是宏,不要被这个术语吓到了,宏的意思简单的来说,就是一些系统预?#35753;?#21517;好的常量。写程

            序的过程中可以使用这些宏所代表的数据,但是不可对这些宏进行?#25345;?#25805;作。

            常用的宏有如下这些:

            @AppDataCommonDir,公共 Application Data 文件夹所在路径

            @AppDataDir,当前用户 Application Data 文件夹所在路径

            @ComSpec, %comspec% 的 值 , 指 定 的 第 二 个 命 令 解 释 程 序(SPECified secondary COMmand

            interpreter),主要用于命令行使用, 如. Run(@ComSpec & " /k help | more")

            @CR,回车符,用于换行

            @LF,换行符,用于换行

            @CRLF,@[email protected],回车换行符,用于换行

            @DesktopCommonDir,公共 Desktop 文件夹路径(桌面)

            @DesktopDir,当前用户 Desktop 文件夹路径(桌面)

            @DesktopHeight,桌面高度(像素) (垂直分辨率)

            @DesktopWidth,桌面宽度(像素) (水平分辨率)

            @DesktopDepth,像素颜色位深度(如 32 Bit)

            @DesktopRefresh,屏幕刷新率.(如 75 HZ)

            @DocumentsCommonDir,公共 Documents 文件夹路径(我的文档)

            @FavoritesCommonDir,公共 Favorites 文件夹路径

            @FavoritesDir,前用户的 Favorites 文件夹路径

            @HomeDrive,当前用户主目录所在的驱动器号(主要用于确定系统所在分区)

            @MyDocumentsDir,我的文档的路径.

            @OSServicePack,系统已安装的 Service pack 信息,比如"Service Pack 3" ,若是 Windows 95 则

            可能返回 "B"

            @OSVersion,返回操作系统的版本,如: "WIN_2003", "WIN_XP", "WIN_2000", "WIN_NT4",

            "WIN_ME", "WIN_98", "WIN_95"

            @ProgramFilesDir,返回 Program Files 文件夹路径.

            @ProgramsCommonDir,「开始」菜单\程序目录所在路径(例:C:\Documents and Settings\All Users\

            「开始」菜单\程序)公共用户

            @ProgramsDir,「开始」菜单\程序 目录所在路径(例:C:\Documents and Settings\All Users\「开始」

            菜单\程序) 当前用户

            @ScriptDir,脚本所在目录. (不包含反?#22791;?#31526;号"\")

            @ScriptName,当前运行的脚本的长文件名

            @ScriptFullPath,等价于 @ScriptDir & "\" & @ScriptName

            @StartMenuCommonDir,公共用户「开始」菜单 目录所在路径(例:C:\Documents and Settings\All

            Users\「开始」菜单)

            @StartMenuDir,当前用户的 「开始」菜单目录所在路径

            @StartupCommonDir,公共用户的 启动 目录所在路径(例:C:\Documents and Settings\All Users\

            「开始」菜单\程序\启动)

            @StartupDir,当前用户的 启动 目录所在路径

            @WindowsDir,Windows 文件夹 所在路径,(例:C:\WINDOWS)

            以上的 AU3 的宏只是所有 AU3 的宏中比较常用的一部分,如果您想了解更多关于 AU3 宏的信息,

            请查阅 AU3 帮助文档。

            其实大家可能也看出来了,宏有点类似 Windows 的环境变量,当然,其?#38405;?#21644;多样性?#23545;?#36229;过Windows 环境变量。

            讲到这里,关于 AU3 的基础知识就给大家介绍完了。以后我们也可以?#36164;中?#19968;些简单的小程序来满足我们对自动化操作的需要,同样,当我们再碰到高?#32622;?#20889;的 AU3 源代码终于也可以看懂一些了。

            编程,其实无论是 AU3 还是其他的,如果想熟练掌握仅仅靠?#20056;?#36825;些语法、函数、宏是不管用的,不过如果你不知道这些语法、函数、宏也是更行不通的。想熟练使用一样东西,就要经常使用它。一开始写程序是有点小困难,但这只是因为您对编程还不熟悉,并不代表着您不能掌握编程。编程很大程度

            上靠的不是智力,而是一个人的毅力!

            热门排行

            ?
            pk10如何将100玩到一万