AU3.docx
《AU3.docx》由会员分享,可在线阅读,更多相关《AU3.docx(23页珍藏版)》请在冰豆网上搜索。
AU3
EnvSet("TEMP",EnvGet("systemdrive")&”\Windows\Temp”)
;运行完成后,%TEMP%这个环境变量的值将被修改,如果系统盘为C盘,则%TEMP%的值为“C:
\Windows\Temp”
======================================================================
DirCopy("C:
\Skyfree","D:
\Skyfree",1)
;[标志],为0(默认)时不覆盖已有的文件夹,为1则覆盖
======================================================================
DirCreate("C:
\Skyfree")
;创建文件夹
======================================================================
$Size=DirGetSize("C:
")/1024/1024
;由于DirGetSize返回值的单位是字节,所以我们需要连续除以两次1024才能得到MB级别的剩余空间
======================================================================
DirMove("C:
\Skyfree","D:
\Skyfree",1)
;移动指定目录及其所有子目录和文件,[标志],为0(默认)时不覆盖已有的文件夹,为1则覆盖
======================================================================
DirRemove("C:
\Skyfree",1)
;语法:
DirRemove("路径"[,递归遍历])。
[递归遍历],0则不删除其子文件和文件夹,1则删除
======================================================================
$Format=DriveGetFileSystem("C:
\")
;返回指定驱动器的文件系统类型:
返回值:
FAT/FAT32/NTFS/CDFS/UDF
======================================================================
$Type=DriveGetFileSystem("C:
\")
;返回指定驱动器的类型。
返回值:
"Unknown"(未知类型)、"Removable"(可移动)、"Fixed"(固定的)、"Network"(网络)、"CDROM"(光驱)、"RAMDisk"(内存盘)
======================================================================
$FreeSpace=DriveSpaceFree("C:
\")/1024
;这样将获得GB级别的剩余体积.以MB(兆字节)为单位返回指定路径所在分区的剩余空间
======================================================================
创建快捷方式
FileCreateShortcut("D:
\360safe\360Safe.exe",@DesktopCommonDir&"\360安全卫士.lnk","D:
\360safe")
;语法:
FileCreateShortcut("目标文件","lnk文件"[,"工作目录"]),创建指定文件的快捷方式(.lnk文件)
======================================================================
FileCopy("C:
\Skyfree.esp","D:
\Skyfree.esp",1)
;语法:
FileCopy("源文件","目标路径"[,标志])
;参数:
[标志]0=(默认)不覆盖存在的文件;1=覆盖存在的文件;8=如果目标文件夹不存在,就先创建(查看注意部分)
======================================================================
FileDelete("C:
\Skyfree\Skyfree.esp")
;删除一个或多个文件
;====================================================
IfFileExists("C:
\Skyfree\Skyfree.esp")Then
MsgBox(0,"","存在")
Else
MsgBox(0,"","不存在")
EndIf
;作用:
检查指定文件或目录是否存在
;语法:
FileExists("路径")
;返回值:
存在则返回1(真),不存在则返回0(假)
;==================================================
FileMove("C:
\Skyfree.esp","D:
\Skyfree.esp",1)
;作用:
移动一个或多个文件
;语法:
FileMove("源文件","目标路径"[,标志])
;参数:
[标志]0=(默认)不覆盖存在的文件1=覆盖存在的文件8=如果目标文件夹不存在,就先创建(查看注意部分)
;作用:
修改一个或多个文件的属性
;语法:
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")
;=========================================
IniRead("C:
\Windows\AllUsrRun.ini","PreSetup","Exe","NA")
这行语句的意思是从C:
\Windows\AllUsrRun.ini这个配置文件中寻找PreSetup段,
再从PreSetup这段下寻找Exe关键字,随后读取Exe关键字对应的值,如果Exe
关键字的值为空则返回“NA”。
;==========================================
IniWrite
作用:
向某标准配置文件(*.ini)中写入某个数值
语法:
IniWrite("文件名","字段名","关键字","数值")
范例:
IniWrite("C:
\Sysprep\Sysprep.ini","SK3","UnDev","True")
IniWrite和IniRead是对应的,IniWrite用来写配置文件,上面语句的意思是寻找
C:
\Sysprep\AutoSysprep.ini这个配置文件,并寻找SK3这一段,再由SK3段中寻找UnDev
项并把这项的值设置为True。
;=====================================================
语法:
Random([最小值[,最大值[,标志]]])
参数:
最小值,随机数的最小值,默认为0;最大值,随机数的最大值,默认为1;标志,设为1则返回整数,默认则返回一个浮点数
$Rs=Random(2,5,1);上述语句将随机选取2到5之间的一个整数赋值给$Rs。
;=====================================================
$passwd=InputBox("权限核查","请输入密码:
","","*")
;作用:
显示以一个输入框以供用户输入数据
;语法:
InputBox("标题","提示信息"[,"默认数据"[,"密码字符"[,宽度,高度[,左边,上边[,超时时间]]]]])
;超时时间,[可选参数]以秒为单位。
指定时间过后输入框将自动关闭
;=========================================================
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
TRYAGAIN(重试)=10
CONTINUE(继续)=11
范例:
$Flag=MsgBox(4+32,"驱动包删除","是否要删除系统驱动包备份?
")
If$Flag=6Then
DirRemove("C:
\Drivers",1)
EndIf
这个例子中,$Flag用来记录MsgBox执行后的返回值,MsgBox由于我的标志选
择了4+32,这将意味着这个MsgBox框中会有Yes和No两个按钮并且提示标志是一个
“?
”,在随后的判断中,$Flag如果等于6,则代表我在MsgBox中单击了Yes这个按
钮,这将执行DirRemove("C:
\Drivers",1),否则将不执行。
;=========================================================
ToolTip
作用:
在屏幕的任意位置显示一个工具提示
语法:
ToolTip("文本"[,X坐标[,Y坐标[,"标题"[,图标[,选项]]]]])
参数:
文本,工具提示的文本(如果是空字符串则清除现有的工具提示)
X,Y坐标,[可选参数]工具提示出现位置地X和Y坐标标题,[可选参数]工具提示的标题,需要IE5+支持图标,[可选参数]预定义标题显示的图标:
需要IE5+支持.需要设置一个标题,
0=没有图标,1=信息图标,2=警告图标,3=错误图标
选项=[可选参数]为不同的显示类型设置不同的显示选项:
1=显示气泡提示,需要IE5+支持
2=在X,Y坐标中,居中显示提示.而不是在左上角显示.
4=如果有必要,强制显示工具提示总是可见,如果有多个显示器并且工具提示显示
于屏幕边界,那么在另外的显示器上面也会显示.这个选项不能工作于Windows95或
者WindowsNT.在那些平台,工具提示只能限制在主显示器里面
范例:
TooTip可以很简单帮我们做出来一些提示,这些提示有些事后很有用。
ToolTip("正在安装AMD双核驱动...",@DesktopWidth-200,@DesktopHeight-80,"提示:
",1,1)
;======================================================
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函数只调用外部程序运行而不等待这个外部程序的运行结束。
;========================================================
Shutdown
作用:
关机操作
语法:
Shutdown(参数)
参数:
0=Logoff(注销)
1=Shutdown(关机)
2=Reboot(重启)
4=Force(强制执行)
8=Powerdown(关机)
32=Suspend(待机)
64=Hibernate(休眠)
范例:
Shutdown(Reboot)
;==========================================================
RegDelete
作用:
从注册表中删除指定键值
语法:
RegDelete("键名"[,"值项"])
范例:
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE","TestKey")
;清除运行记录
RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU","")
:
:
清除系统搜索记录
RegDelete("HKCU\Software\Microsoft\SearchAssistant\ACMru","")
RegWrite("HKCU\Software\Microsoft\SearchAssistant\ACmru","","","")
:
:
清除IE地址栏中的上网记录
RegDelete("HKCU\Software\Microsoft\InternetExplorer\TypedURLs","")
;===========================================================
RegRead
作用:
读取注册表指定的值
语法:
RegRead("键名","值项")
范例:
$Reg=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir")
;=======================================================
RegWrite
作用:
创建一个主键、子键或值项
语法:
RegWrite("键名"[,"值项","类型",数据])
参数:
类型,[可选参数]目标值项的数据类型,比如:
"REG_SZ"、"REG_MULTI_SZ"、
"REG_EXPAND_SZ"、"REG_DWORD"或"REG_BINARY"。
范例:
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test","TestKey","REG_SZ","Hellothisisatest")
;清除系统日志
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa","crashonauditfail","REG_DWORD","1")
;=========================================================
StringInStr
作用:
检查某个字符串是否含有给定的子串
语法:
StringInStr("字符串","子串"[,区分大小写[,出现次序]])
参数:
字符串,目标字符串。
子串,要搜索的子串。
区分大小写,[可选参数]指定匹配操作是否要区分大小写。
0=不区分大小写(默认)
1=区分大小写
2=不区分大小写,使用基本/快速的比较方法
出现次序,[可选参数]指定要提取目标字符串中第几个匹配的子串。
若给定的是
负数则表示要从字符串右边开始搜索。
默认值为1(搜索第一个匹配的子串)。
返回值:
包含则返回1(真),不包含则返回0(假)
范例:
If
StringInStr("nVIDIAGeforce8600GTS","nVIDIA")Then
$SndName="nVIDIA"
EndIf
======================================================================
StringLen
作用:
返回指定字符串的字符总数
语法:
StringLen("字符串")
范例:
$Length=StringLen("Skyfree")
此时,$Length的值应该为7
======================================================================
StringMid
作用:
取某个字符串的部分字符
语法:
StringMid("字符串",起始位置[,数量])
范例:
$S=StringMid("Skyfree",4,4)
此时,$S的值应该为“free”
=====================================================================
Sleep
作用:
使脚本暂停指定时间段
语法:
Sleep(延迟)
范例:
Sleep(3000)
暂停脚本运行3秒,注意,参数里的“延迟”是以毫秒为单位的
=====================================================================
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
==========【顺序结构、选择结构、循环结构入门】=======================
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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>顺序结构
Dim$a
$a=5
If$a>3Then
MsgBox(0,"选择结构示例","大于3")
Else
MsgBox(0,"选择结构示例","小于或等于3")
EndIf
运行这个程序,则会出现一个对话框,对话框中显示为“大于3”。
随后我们可以将一个小于3的数例如2复制给$a,如下:
Dim$a
$a=2
If$a>3Then
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[变量