预览模式: 普通 | 列表
2008-09
09

AU3简单编程初学者必看

初学者的基础训练 有点长 但是给新手看很必要

其实 AutoIt v3(AU3)已经不是一种简单的脚本语言了,AU3 在 GUI 界面方面也是很有效果的,不过我在这一节中只介绍 AU3 的一些常用的基本用法,如果您想了解更多关于 AU3 编程的信息和方法,请参阅 AU3 的帮助文档——这真的是一篇很全面的帮助文档。
       在这一节中,我将和大家一起学习 AU3 的一些基本使用方法,不求多,只求常用、好用、好学,这一节的目的,旨在可以让大家和我一起在 Windows 环境下让 AU3 彻底替代批处理。在 Windows 环境下让批处理难看的黑框见鬼去吧~~。
学习任何一门语言,基本上所要做的第一件事,就是在 10 分钟内学会如何用这门语言编出一个可以显示“Hello World !”的小程序,当然,我们学习 AU3 的基本使用方法,这个就不例外了。
AU3 的源码,可以使用记事本直接编辑——其实很多语言的源码也都可以直接使用纯文本文档来编辑,不过我个人并不建议初学者使用记事本,编写 AU3 源码,有一个非常好的文本编辑器,SCITE。SCITE 是一个类似记事本的小程序,它会用不同颜色标记您所编写的 AU3 源码中的不同类别的命令,而且它内置记录了许多 AU3 的函数与指令,在您编写 AU3 源码时可以提供给您很大的帮助。
好的,下面我们打开 SCITE 编辑器,我们将会得到一个类似记事本的界面,下面,我们就可以编写 AU3 源码了。大家跟我写下如下代码:
MsgBox(0,"我的第一个 AU3 程序","Hello World !")
写好后保存,保存后,这将是一个以 AU3 为后缀的文件,例如我们将它命名为 Skyfree.au3,不过这个程序还不能运行,它只是源码,我们必须将它转化为可执行文件,也就是EXE 文件,它才会正常运行。这个由源码转换为可执行文件的过程,也就是我们经常听到高手口中所说的“编译”了。
如何执行编译呢?我们可以右键单击 Skyfree.au3 这个 AU3 源码文件,然后会出现“编译脚本”这个选项,我们单击“编译脚本”,几秒钟,这个Skyfree.au3 源码文件就被编译成了 Skyfree.exe 文件了。
双击 Skyfree.exe 文件,立刻会弹出来一个对话框,上面写着“Hello World”。
怎么样,是不是很神奇,我们的第一个 AU3 程序就这么写出来了,简单吗?
其实编程就是这么简单,不要在某些高手的神话传说和谆谆教诲下感觉编程很神秘了,只要有耐心和恒心,菜鸟照样玩编程。
不过这一节我也不是来领着大家做游戏的,这一小节有几个很重要的概念信息我再来重复一下,一个是源码,一个是可执行程序,从源码到可执行程序,需要一个过程,这个过程叫做“编译”。

1. AutoIt v3 入门

1> 数据类型
任何编程语言都有数据这个概念,当然,任何编程语言都讲究数据类型,AU3 也一样,不过 AU3 对数据类型的分类比较简单,在 AU3 中,数据大概分成四类:数字类型、字符串类型、布尔值、二进制类型..
数字类型,顾名思义,就是数字,例如 1、2、3.4、5 等等,AU3 对数字类型没有再进行详细的分类(很多语言中都将数字类型再详细分为整形、浮点型等等),这给初学者带来了不少方便,只记住数字类型就是我们常说的“数”就可以了。
字符串类型,字符串即使一串字符,例如 ABCDE、Skyfree、SK1023Y 等等,这些都是字符串,这个是很好理解的,不过大家应该分清楚一点,就是数字 1 和字符 1 是有区别的。
布尔类型,不要被这个名字搞乱了,所谓布尔类型的值,就是 True(真)和False(假)这两个值,这在进行数据判断的时候十分有用。
二进制类型我们很少用到,本着不常用的不浪费我们时间的原则,这个我就不多废口水了,有兴趣的朋友可以参考 AU3 帮助文档中的相应说明。

2> 变量
说完了数据类型,终于可以说数据了。
所谓变量,就是在程序运行过程中其值可以改变的量——简单了说就是可以变的量就是变量(……好像废话)。我们可以定义一个变量,例如,
Dim $Skyfree
$Skyfree 就是一个变量,Dim 是定义变量的意思。在程序运行过程中,我们可以将 1 这个值赋给$Skyfree 这个变量,
$Skyfree=1
这时$Skyfree 就代表着 1 这个值,不过由于$Skyfree 是变量,我们可以在任意我们喜欢的时刻将 2 再赋值给$Skyfree,
$Skyfree=2
再次赋值结束后,$Skyfree 就代表着 2 这个值。
说到这里,大家大概明白什么叫变量了吧。大家就随手命名几个变量吧。
不过有一点要说的是,AU3 的变量命名有它的规则,不符合命名规则的变量将不被称之为变量

AU3 的变量命名规则是:
以$开头的,字母、数字、下划线组合,例如$Sky、$Sky_Free、$Sky1023 这些都是合乎 AU3 变量命名规则的变量。

3>常量
明白了什么是变量,常量的意义就很好解释了。
常量,就是在程序运行过程中其值不能被随意改变的量。我们可以定义一个常量,例如,
Const $Skyfree=1
常量一旦被赋值,在整个程序运行过程中其值将不能被改变。当然,常量的命名也有它的规则,常量的命名规则与变量相同。

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 赋值给他们。
到这里,大家也大概看出来什么是数组了,所谓数组,就是以一个名字命名一组变量,就像 Sky 这个数组名,这个数组包含从 0 到(数组元素数量1),例如 Sky[3],那么其中的元素就是从 Sky[0]~Sky[31]。
如果说的再简单点,就是一组使用着同一个变量名的变量(例如数组 Sky[3]中的每一个元素都使用Sky 这个变量名),为了区别这一组的每一个变量,使用一个序号来唯一标识这个元素(例如 Sky[1]和Sky[2],虽然都使用 Sky 这个变量名,但它们使用[1]和[2]来区别彼此)。


数组的运用十分广泛,通常一个数组里存储着一组有关系的数据,或者有着一定相似性的数据。
如果您现在还不能完全理解数组,也没关系,随着对 AU3 程序理解的深入,会慢慢理解数组这个概念的。

5>运算符
数据运算:
= 赋值运算,将“=”右边部分的值赋给左边
+ 加法运算, $S=2+3
减法运算, $S=2-3
* 乘法运算, $S=2*3
/ 除法运算,$S=2/3
& 字符串连接运算,$St=”ABC” & “DEF” & “123”
^ 冥运算,$S=2^3(2 的三次方)
布尔运算:(返回 True 或者 False 值)
= 判断左右两侧的值是否相等,如果左右两侧为字符串,则不区分大小写比较
== 判断左右两侧的值是否相等,如果左右两侧为字符串,则区分大小写比较
<> 判断左右两侧是否不等于

>

判断左侧是否大于右侧

>= 判断左侧是否大于等于右侧
< 判断左侧是否小于右侧
<= 判断左侧是否小于等于右侧
逻辑运算:
AND 与运算,只有“AND”两侧的值都为“真”时,才返回“真”,否则返回“假”
or 或运算,当“OR”两侧只要有一侧为“真”时就返回“真”,否则返回“假”
NOT 非运算,NOT 真为假,NOT 假为真
这些运算符是有优先级一说的,就像我们小学所学的“先乘除后加减”一样,这些运算符的优先级
如下,自上而下优先级依次降低,同级自左向右优先级依次降低:
NOT
^
* /
+
&
< > <= >= = <> ==
AND or
牢记这些优先级,否则很容易在以后的编程中造成混淆。

2. 顺序结构、选择结构、循环结构入门

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

1>顺序结构
顺序结构是十分简单的结构,就像批处理一样,一条一条的运行所写下的代码,脚本运行时,就会
一条一条的运行代码,例如:
Dim $S,$a,$b
$a=1
$b=2
$S=$a+$b
MsgBox(0,"运算结果",$S)
这是个简单的程序,定义了变量$S,$a,$b,再分别将 1 和 2 赋值给$a,$b,然后计算$a 和$b 的和,并将这个和复制给$S,最后使用一个窗口将这个和显示出来。
程序从第一行定义变量到最后一行显示$S 的值依次执行下来,这就是顺序结构,也是一个程序里最基本的结构。

2>选择结构
选择结构中我只介绍 If…Then…结构,这个是极为常用的选择结构,十分直观。选择结构里还有Select…Case…这种结构,感兴趣的朋友可以参照 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…一切都迎刃而解。

3>循环结构
循环结构我只介绍最常用的 While…Wend 循环和 For…Next 循环,其他的循环结构控制语句,如果有需要可以参考 AU3 帮助文档。
While…Wend,语法:
While [条件]
[语句段]
Wend

这个语句中,While 后的[条件]只要为真,则会循环执行[语句段],直到[条件]为假才结束循环,如果无论怎么循环[条件]都始终为真,则这个循环会成为死循环,这样会造成系统资源耗尽而死机或者其他情况。
举个例子,例如我们想计算 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 值的和,而每次循环结束后$i 的值都会被+1,这样,$i 会依次表示 1、2、3…这些值(注意,这些$i 的值都<=100,所以循环会继续执行),而$Sum 会记录从 1+2+3+…的值。在第 100 次循环结束时,也就是$i=$i+1 运行到第 100 次时,
此时$i 的值为 101,那么第 101 此循环运行前检测 While 后的条件$i<=100 时,这个条件将不符合,不符合 While 后面的条件,也就是 While 后面的条件为假时,则退出循环。退出循环后运行 MsgBox 这一行,这样就将$Sum 的值,也就是 1+2+3+…+100 的值显示在弹出的对话框中。
下面,我们来看一下 For…Next 循环
For…Next,语法:
For [变量]=[初值] To [终值] [Step [步进值]]
[语句段]
Next
For…Next 循环结构经常与数组一起使用,例如:
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 循环结构范例",$Sum)
这个例子中,首先我们定义了$Sky 数组,这个数组包含 5 个元素,然后我们又定义了$i 和$Sum 这两个变量,分别用来计数和计算和值。接着我们为$Sky 中的 5 个元素赋了初始值,以及为$Sum 赋了初始值。进入 For 循环,循环一共进行了 5 次,5 次中$i 分别等于 0、1、2、3、4,在这 5 次循环中,$Sum
依次记录$Sky[0]、$Sky[1]、…$Sky[4]的和值。5 次循环结束后,使用 MsgBox 语句将$Sum 结果显示在对话框中。

3. 常用的 AU3 函数

什么是函数?很多人初接触编程对这个存在很大的疑惑。
举个简单的例子,有一个制造桌子的工厂,你从这边将木材送进去,就会从工厂的那边生产出桌子来,如果你送进去檀木,那么就会生产出檀木桌子,如果你送进去红木,那么就会生产出红木的桌子。
这个工厂就是函数,我们送进去的木头就是函数的参数,工厂生产出来的桌子就是函数的返回值。
我们不必知道工厂的内部结构,也不必知道桌子的生产过程,我们只需要调整木头的类型,就可以生产出不同的桌子。也就是说,我们不必知道函数的工作原理,而只需要调整参数,就能得到我们想要的结果。
AU3 提供了大量的函数,这些函数很方便,但是 AU3 的函数有几百个,全部记住反正笔者我这样的破脑袋是不行,下面我列举一些十分常用的 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
作用:复制指定目录及其所有子目录和文件
语法: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
作用:移动指定目录及其所有子目录和文件
语法:DirMove ( "源目录", "目标目录" [, 标志] )
参数:
[标志],为 0(默认)时不覆盖已有的文件夹,为 1 则覆盖
范例:DirMove ("C:\Skyfree","D:\Skyfree",1)


7> DirRemove
作用:删除一个目录/文件夹
语法:DirRemove ( "路径" [, 递归遍历] )
参数:
[递归遍历],0 则不删除其子文件和文件夹,1 则删除
范例: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=DriveGetType ( "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
作用:删除一个或多个文件
语法: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 ( "文件名", "字段名", "关键字", "默认值" )
范例:
IniRead("C:\Windows\AllUsrRun.ini","PreSetup","Exe","NA")
这行语句的意思是从 C:\Windows\AllUsrRun.ini 这个配置文件中寻找 PreSetup 段, 再从PreSetup 这段下寻找 Exe 关键字,随后读取 Exe 关键字对应的值,如果 Exe返回“NA”。

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


18> IniWrite
作用:向某标准配置文件(*.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 则返回整数,默认则返回一个浮点数
范例:
$Rs=Random(2,5,1)
上述语句将随机选取 2 到 5 之间的一个整数赋值给$Rs。


20>InputBox
作用:显示以一个输入框以供用户输入数据
语法:InputBox ( "标题", "提示信息" [, "默认数据" [, "密码字符" [, 宽度, 高度 [, 左边, 上边 [, 超
时时间]]]]] )
参数:
标题,输入框的标题文字
提示信息,提示用户程序需要获得的数据
默认数据,显示在输入文本框中的默认文字
密码字符,[可选参数] 显示在输入文本框中用以代替用户输入字符的字符。如果要正常显示字符只需定义此参数为空字符串""(默认)或空格字符即可。 如果此参数被设为多字符的字符串则只有第一个字符才有效。第二个字符及后面的其它字符有其它特殊用途。请查看下面的注意部分

宽度, 可选参数] 窗口宽度。如有指定此参数则高度参数也必须指定。指定 1 则表示使用默认宽度
高度, 可选参数] 窗口高度。如有指定此参数则宽度参数也必须指定。指定 1 则表示使用默认高度
左边, 可选参数] 输入框左边离屏幕左边的距离(象素)。默认情况下,输入框是居中显示的,如有指定此参数则 上边 参数也必须指定上边, 可选参数] 输入框上边离屏幕左边的距离(象素)。默认情况下,输入框是居中显示的,
如有指定此参数则 左边 参数也必须指定
超时时间,[可选参数] 以秒为单位。指定时间过后输入框将自动关闭
范例:
$passwd = InputBox("权限核查", "请输入密码:", "", "*")


21>MsgBox
作用:显示一个简单的对话框(可设置超时属性)
语法:MsgBox ( 标志, "标题", "文本" [, 超时时间] )
参数:
标志,标志是几个值的加和,我只介绍最常用的两类值,如果有更多的需要请参阅 AU3 帮助

文件。一个是要显示的按钮的对应值,一个是要显示的提示图标对应的值。
表如下:
按钮对应的值:
0=确定
1=确定 和 取消
2=终止、重试、忽略
3=是、否、取消
4=是 和 否
5=重试 和 取消
6=取消、重试、继续
提示图标对应的值:
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,"驱动包删除","是否要删除系统驱动包备份?")
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),否则将不执行。


22> ToolTip
作用:在屏幕的任意位置显示一个工具提示
语法:ToolTip ( "文本" [, X 坐标 [, Y 坐标 [, "标题" [, 图标 [, 选项]]]]] )
参数:
文本,工具提示的文本(如果是空字符串则清除现有的工具提示)
X,Y 坐标,[可选参数] 工具提示出现位置地 X 和 Y 坐标
标题,[可选参数] 工具提示的标题, 需要 IE5+支持
图标,可选参数] 预定义标题显示的图标: 需要 IE5+支持. 需要设置一个标题,0= 没有图标,
1 = 信息图标, 2 = 警告图标, 3 = 错误图标
选项=[可选参数] 为不同的显示类型设置不同的显示选项:
1 = 显示气泡提示, 需要 IE5+支持
2 = 在 X,Y 坐标中,居中显示提示.而不是在左上角显示.
4 = 如果有必要,强制显示工具提示总是可见,如果有多个显示器并且工具提示显示于屏幕边界,
那么在另外的显示器上面也会显示. 这个选项不能工作于 Windows 95 或者 Windows NT. 在那些
平台,工具提示只能限制在主显示器里面
范例:
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 运行完毕再隐藏运行 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
作用:从注册表中删除指定键值
语法: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 = 不区分大小写, 使用基本/快速的比较方法
出现次序,[可选参数] 指定要提取目标字符串中第几个匹配的子串。若给定的是负数则表示
要从字符串右边开始搜索。默认值为 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 中的宏

什么是宏,不要被这个术语吓到了,宏的意思简单的来说,就是一些系统预先命名好的常量。写程
序的过程中可以使用这些宏所代表的数据,但是不可对这些宏进行赋值操作。
常用的宏有如下这些:
@AppDataCommonDir,公共 Application Data 文件夹所在路径
@AppDataDir,当前用户 Application Data 文件夹所在路径
@ComSpec, %comspec% 的 值 , 指 定 的 第 二 个 命 令 解 释 程 序(SPECified secondary COMmand
interpreter),主要用于命令行使用, 如.    Run(@ComSpec & " /k help | more")
@CR,回车符,用于换行
@LF,换行符,用于换行
@CRLF,@CR+@LF,回车换行符,用于换行
@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,脚本所在目录. (不包含反斜杠符号"\")
@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 的环境变量,当然,其性能和多样性远远超过Windows 环境变量。

讲到这里,关于 AU3 的基础知识就给大家介绍完了。以后我们也可以亲手写一些简单的小程序来满足我们对自动化操作的需要,同样,当我们再碰到高手们写的 AU3 源代码终于也可以看懂一些了。
编程,其实无论是 AU3 还是其他的,如果想熟练掌握仅仅靠背诵这些语法、函数、宏是不管用的,不过如果你不知道这些语法、函数、宏也是更行不通的。想熟练使用一样东西,就要经常使用它。一开始写程序是有点小困难,但这只是因为您对编程还不熟悉,并不代表着您不能掌握编程。编程很大程度上靠的不是智力,而是一个人的毅力!

Tags: 技术

分类:电脑技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1199
2008-09
08

photoshop 出现暂存盘已满情况的解决方法

      今天一大早,就有个朋友电话过来跟我说他在做平面设计保存的时候突然间出现暂存盘已满的错误提示,这个问题还是第一此遇到,所以我当时也只是说可能是磁盘空间不够,让它存到别的磁盘看看。

      起床后,我就匆匆上网找了一下资料,发现所谓暂存盘是指ps在存储的过程中所调用的存储空间,于是我自己机器打开photoshop,导入一个1.5G的大图,简单第编辑操作后,到TEMP文件夹下面看了一下,果然在temp目录下生成一个3点多G的临时文件,汗····

     我想肯定是由于这个临时文件生成的容量太大了,所以才会出现这样的问题,于是我把临时文见都清理了一下,腾出足够的空间,再次保存的时候,成功了。。。

    我赶紧打电话告诉朋友,问题应该是这样解决的。

查看更多...

Tags: 电脑 技术 贴图

分类:电脑技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 805
2008-09
07

黄相如:揭密百度和谷歌收录规律

  对于网站的更新和收录,搜索引擎都有它们各自的规律。因此每一次网站的更新收录,都牵动着每一个网站运营者的神经。因为更新收录是百度排名和Google排名的基础,当然每一个网站的自身情况不一样,更新收录也不能一概而论的。根据互联网实战专家黄相如的细心观察与对照,总结出百度、Google的更新收录规律与现象:

  1、百度更新及收录是根据你网站的质量和更新速度的变化而变化的,你快它也快,你慢它也慢;而Google更新则比较“稳重”,基本上是一周一更新,对于企业网站来说。如果是大门户网上,可能Google更新和收录的情况会不一样。许多网站运营者在进行百度优化和Google优化的时候,就会经常想着,到底是百度更新更快还是Google更新更快?而我觉得这不是一个绝对数。

  2、百度对原创文章的重视程度比Google更加重视,对于一个完全相同内容的网站,在Google已经收录了上千个网页,而百度则还site不到信息。百度对收录质量也在不断提高,早几年以前都说百度收录的数量很浮夸,而现在,很多大网站的收录数量被砍一半,甚至远远低于Google的收录数量。这一举动也说明百度在改变收录标准和更新标准。

查看更多...

Tags: 电脑 技术 {41}

分类:电脑技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 656
2008-09
06

信息产业部ICP及IP备案管理平台被入侵(图)

惊人消息,绝对可靠!!!信息产业部网站被入侵了!!!

今天下午15:13,在某群看到的信息产业部ICP及IP备案管理平台时候发现该站已经被而已入侵,

查看更多...

Tags: 技术 电脑 {40}{41}

分类:热点资讯 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 565
2008-09
05

极度无耻:9月4号发生在西安南门的最龌龊一幕!

2008年9月4日下午16时30分,有人在南门里亲眼目睹了发生在这里的令人吃惊的一幕。



一名中国妇女为了向老外要钱,竟然尾随一群外国人,突然撩起上衣......

查看更多...

Tags: 伤心 贴图 时政消息

分类:热点资讯 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 735
2008-09
04

蓝颜知己

 
 
 
 

蓝颜知己

——亲爱天使 落叶之期 我们的秘密
一生
     不能拥有你
就让我做你的蓝颜知己
  我静静的望着你
  好想把缠缠绵绵浓浓蜜蜜的心事织在一起
  在静谧日光里
  我纯洁心事
  撒满一地
一生
    
    不能拥有你
  就让我做你的蓝颜知己
  化着温柔手
  温暖你冬日的柔夷
  我把缱绻的心事织满围巾
  终日围绕在你美丽的肩
一生
    不能拥有你
  就让我做你的蓝颜知己
  我把你和我反复放在一起
  在白日里
  幻化了多少的梦和温馨的记忆
  我轻轻的凝神你
  忍不住还是喜欢你

一生
不能拥有你
  就让我做你的蓝颜知己
  无论你走到哪里
我都切切跟着你
天涯海角幸福流浪
直到感觉到你那熟悉的心跳和呼吸
  让你自由快乐而无所顾忌
让你不再感受孤单而心有灵犀


一生
不能拥有你
  就让我做你的蓝颜知己
  飘雪的夜
  我轻声的呼唤你
  那样孤单
那样寂寂
忧伤而又甜蜜

亲爱的
  既然我们无缘厮守
  让我的思念穿越时空
  映成你幽幽的倩影
默默的知你,读你,恋你 ……
亲爱的
  冬日的落漠
  让我触摸到你寂寞的香气
  那晶莹剔透的情感
温馨着我们今生永世的话题

  亲爱的
有一种情感无关婚姻
却持久弥香
有一种心情并非友谊
却馨香四溢
  亲爱的
那就是——我
那就是我
        
 
 

 

分类:网文欣赏 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 567
本光盘综合各个系统盘最后修改完成。因本人电脑配置不够好,所以没有重新封装,而仅仅是修改而已。光盘讲究方便,速度,稳定与安全,可在线更新,去除了一些烦人的流氓软件广告等,方便广大群众使用。如果您对本光盘有任何意见请与本人联系。
网站:心蓝数据(http://bhdata.com)
友情支持: 114智能搜索平台(http://114zn.cn)
电脑知识问与答QQ群:42447281(本系统相关问题可在此群咨询)
下载地址:DIY系统论坛

温馨提示:
硬件检测工具在开始-程序-装机人员工具里
系统默认不共享,没有开启打印服务

查看更多...

Tags: 操作系统

分类:精品软件 | 固定链接 | 评论: 5 | 引用: 0 | 查看次数: 1544
2008-09
02

联想数据中心免费5G网络硬盘申请

           我所期待的事情终于变成现实了,就是有个大企业来搞网络硬盘。这不可爱的联想就做了这件事情,帮我们实现了这个伟大的愿望。
        联想网盘是由联想集团旗下的联想在线数据中心推出的5G存储空间免费网络硬盘,新用户注册初始容量为1G,每天增加10M,到5G为止,数据永久有效。上传单个文件限制100M以内,可同时上传多个批量文件,支持断点续传,flash版在线上传,无需下载安装控件或软件。联想网盘支持圈子共享、好友共享以及通过邮件外链共享,但不支持直接外链你上传的文件。
A:个人存储分享
5G超大容量免费存储空间
批量文件传输,支持多级目录和断点续传
用户完全控制数据访问权限
多种途径实现数据共享
浏览器内支持文件的拖拽、移动
各种音视频文件的在线预览

查看更多...

Tags: 技术 电脑

分类:电脑技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 888
2008-09
01

【转载】让你永远不后悔的四个人生故事

1.误会:  

早年在美国阿拉斯加地方,有一对年轻人结婚,婚后生育,他的太太因难产而死,遗下一孩子。他忙生活,又忙于看家,因没有人帮忙看孩子,就训练一只狗,那狗聪明听话,能照顾小孩,咬着奶瓶喂奶给孩子喝,抚养孩子。有一天,主人出门去了,叫它照顾孩子。他到了别的乡村,因遇大雪,当日不能回来。第二天才赶回家,狗立即闻声出来迎接主人。他把房门开一看,到处是血,抬头一望,床上也是血,孩子不见了,狗在身边,满口也是血,主人发现这种情形,以为狗性发作,把孩子吃掉了,大怒之下,拿起刀来向着狗头一劈,把狗杀死了。之后,忽然听到孩子的声音,又见他从床下爬了出来,于是抱起孩子;虽然身上有血,但并未受伤。他很奇怪,不知究竟是怎么一回事,再看看狗身,腿上的肉没有了,旁边有一只狼,口里还咬着狗的肉;狗救了小主人,却被主人误杀了,这真是天下最令人惊奇的误会。  

误会的事,是人往往在不了解、无理智、无耐心、缺少思考、未能多方体谅对方,反省自己,感情极为冲动的情况之下所发生。误会一开始,即一直只想到对方的千错万错;因此,会使误会越陷越深,弄到不可收拾的地步,人对无知的动物小狗发生误会,尚且会有如此可怕严重的后果,这样人与人之间的误会,则其后果更是难以想象。  

查看更多...

Tags: 哲理文章

分类:网文欣赏 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 549
2008-08
31

WINDOWS XP 开始→运行 实用命令集锦

      微软老大开发的WINDOWS XP作为目前使用范围最广的系统,相比看这篇文章的你也是XP的忠实用户吧。WINDOWS XP功能强大,主要命令文件都在WINDOWS目录及其system32目录里。下面就给大家收集整理了一份WINDOWS XP命令集锦,堪称WINDOWS XP用户的“葵花宝典”呀。

  winver---------检查Windows版本
  wmimgmt.msc----打开windows管理体系结构(WMI)
  wupdmgr--------windows更新程序

查看更多...

分类:电脑技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 592
2008-08
30

四川攀枝花地震

        据国家地震台网测定,北京时间2008年8月30日16时30分,在四川省攀枝花市仁和区、凉山彝族自治州会理县交界发生6.1级地震,震中位于攀枝花市区东南约50公里处,震中距会理县城约64公里、距云南永仁县城约30公里、距元谋县城约55公里、距昆明市区约150公里。震区人口平均密度约118人/平方公里。

     地震发生后,中国地震局迅速召开了四川、云南省地震局、中国地震台网中心和机关有关部门参加的视频会议,听取四川、云南省地震局负责同志的有关情况汇报,并迅即对后续震情监视跟踪和应急处置工作作出部署:一是由四川、云南省地震局和中国地震台网中心组织专家召开紧急会商会,认真研判震情发展态势;二是责成四川、云南两省地震局按照应急联动机制,加强工作衔接,迅速收集核实地震灾情,做好灾害评估、灾区范围划定等工作;三是应急救援司加强对云南、四川省地震部门现场应急处置的协调指导,共同协助地方政府开展应急处置、落实相关防范措施;四是启动地震应急新闻响应,及时通过门户网站、新华社、中央电视台等媒体发布权威震情灾情信息。

     据四川、云南两省地震局报告,截至目前,地震共造成15人死亡,近百人受伤。其中会理县黎溪镇6人死亡约50人受伤,鱼鲊乡1人死亡3人受伤,绿水乡2人死亡,中场乡1人死亡,鹿厂区1人死亡,河口乡13人受伤;米易县草场乡1人死亡,拉鲊村2人死亡20人受伤;仁和区数十人受伤;云南省楚雄州元谋县1人死亡。

查看更多...

Tags: 文摘 时政消息

分类:热点资讯 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 721
2008-08
30

口渴-夏日的蚊子

口渴

爸爸把儿子哄上床后,回到自己的卧室准备睡觉。
“爸爸!”儿子叫道。
“什么事儿?”

查看更多...

分类:网文欣赏 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 455
2008-08
29

苹果iPhone手机上的中国打工妹照片—“iPhoneGirl”

据英国媒体报道,8月20日,一署名markm49uk的英国消费者购买了iPhone后,惊讶地发现其手机的主屏上显示的是一张中国小妹妹的照片。他将苹果iPhone手机上的中国打工妹的这些照片上传发到了苹果爱好者论坛macrumors.com上,并引起了热烈讨论,迅速引起全球关注,这名女孩被世界网友亲切地称为“iPhoneGirl”。

“iPhoneGirl”走红全球

  消息传出立即引起较大反响,几小时内这条帖子的点击量猛增。国外网友们在留言中都称赞该妹妹笑容可爱,并称她为“iPhoneGirl”。

  几天内,有英国人注册了域名为“www.iphonegirl.net”的博客(iPhone女孩的博客)。8月25日,该博客新添上两条最新消息:一为“本博客登上了中国新闻”,一为“荷兰也知道iPhone女孩的博客了!”

查看更多...

Tags: 贴图 娱乐新闻

分类:热点资讯 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 540
2008-08
28

狂人《大话西游》之狂语

      世界是巨大的枷锁,你不得不重复自己或是别人的生活。
    记得长辈说过:年轻是一种罪过。他们说我们不成熟。

  
  真切地为自己的不俗喝彩,在深切的郁闷中,突然就看懂了《大话西游》的开头:
    一位才华横溢又无法无天的青年(孙悟空),根本不喜欢世人摊派给他的大事业(西天取经)。他尤其受不了师父(唐僧)的唠唠叨叨,可世俗条规(观音)又不放过他。为让他悔悟,心甘情愿地去取经,唐僧和观音达成妥协:让他五百年后重新做人。 这真是一个宿命的开始。

查看更多...

Tags: 电影 文摘 娱乐新闻

分类:网文欣赏 | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 541
2008-08
27

在线生成Sitemaps制作网站地图的简单方法

Sitemaps(网站地图)协议使你能够告知搜索引擎网站中可供抓取的网址。最简便的方式就是,使用 Sitemaps 协议的 Sitemaps 就是列有某个网站所有网址的 XML 文件。此协议可高度扩展,因此可适用于各种大小的网站。它还能够使网站管理员提供有关每个网址的其他信息(上次更新的时间、更改的频率、与网站中其他网址相比它的重要性等),以便搜索引擎可以更智能地抓取该网站。Sitemaps 协议补充而不是取代搜索引擎已用来发现网址的基于抓取的机制。通过向搜索引擎提交一个 Sitemaps(或多个 Sitemaps),可帮助搜索引擎更好地抓取你的网站。

下面介绍大家一种在线生成Sitemaps(网站地图)的简单方法:
一、制作Sitemaps
登陆网址:http://www.sitemapbuilder.net

查看更多...

Tags: 技术 电脑 {41}

分类:电脑技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 742
2008-08
26

免费强悍NOD32杀软升级序列号ID

[2008年08月26日]NOD32杀软可升级序列号ID:
Username:EAV-04605619
Password:nu73c74rpm

Username:EAV-04605615

查看更多...

Tags: 技术 电脑 {40}

分类:电脑技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 548
2008-08
25

女友嫁人了新郎不是我视频

女友嫁人了新郎不是我-印度歌曲:
这首歌来自印度电影《美丽情人》,由最当红的男星沙鲁克.汗主唱。《美丽情人》由最当红的印度男星和女星沙鲁克.汗玛杜莉.迪茜主演。《美丽情人》讲述的是一个至高无上的爱的故事。故事的主人公就叫德夫达斯,他与帕萝从小青梅竹马一起长大,到了谈婚论嫁的时候,两人感情与日俱增。可是,造化弄人,两人之间筑起了一道永远也不能打破的墙,帕萝成了别人的新娘。内心极端痛苦的德夫达斯只好终日与酒精为伴,可是这样也不能消除他因爱而生的病,即使是拥有美丽情人Chandramukhi。只有当他永远闭上眼睛,那份痛苦才会开始消退...临死之前,德夫达斯唯一的愿望就是见上帕萝一面,在帕萝的家门口,通往天堂的门也向德夫达斯打开了......
相关视频:

Flash动画

Tags: 视频 伤心 爱情文章 感人

分类:影视娱乐 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 387