|   
dos9527 
中级用户
 
   
 
  
 
积分 252 
发帖 56 
注册 2003-12-29 
状态 离线
 | 
『楼 主』:
 学习AU3的同学来吧!
 
使用 LLM 解释/回答一下
  
Au3脚本函数用法中文说明 
Au3脚本,也就是AutoIt3 Windows自动安装脚本语言,用过Au3脚本的朋友都知道它的强大.和带来的方便,但它切没有中文教材,就连以前的一个中文论坛也在前段时间,莫明奇妙的关啦门,当然这也不能怪他们.他们也不是管方网站.这样一来就给那些想学Au3脚本切英文不好或没有学过其它语言的朋友带来了极大的不便,其实Au3脚本不难学,难的是看不懂它帮助文件里写的是什么,今天翻译了一些Au3的常用函数用法,希望对一些想学的朋友有些帮肋... 
 
{系统环境变量} 
 
EnvUpdate ( ) 
;更新环境变量 
EnvGet ( "变量名称" ) 
;取环境变量 
ClipGet ( ) 
;取剪辑板文本 
EnvSet ( "变量名称"  ) 
;置环境变量 
ClipPut ( "文本" ) 
;置剪辑板文本 
 
{文件,目录,磁盘管理} 
 
IniRead ("文件名", "功能区", "关键字", "缺省值" ) 
;Ini文件读关键字的值 
IniDelete ( "文件名", "功能区", "关键字" ) 
;Ini文件删除关键字 
IniWrite ( "文件名", "功能区", "关键字", "值"  ) 
;Ini文件写关键字的值 
FileInstall ( "源文件", "目标文件"  ) 
;安装文件 
FileFindFirstFile ( "文件名" ) 
;查找文件(第一次) 
FileFindNextFile ( 文件号) 
;查找文件(继续) 
FileRecycle ( "源文件" ) 
;放入回收站 
FileChangeDir ( "目录" ) 
;改变当前目录 
FileCreateShortcut ( "文件名", "快捷方式名"  ) 
;建立快捷方式 
DirCreate ( "目录" ) 
;目录创建 
DirCopy ( "源目录", "目标目录"  ) 
;目录复制 
DirRemove ( "目录"  ) 
;目录删除 
DirMove ( "源目录", "目标目录"  ) 
;目录移动 
DriveGetDrive ( "类别" ) 
;驱动器查找 
FileGetLongName ( "完整路径和文件名" ) 
;取长文件名 
DriveSpaceTotal ( "路径" )  
;取磁盘空间 
DriveSpaceFree ( "路径" ) 
;取磁盘剩余空间 
FileGetShortName ( "完整路径和文件名" ) 
;取短文件名 
DriveGetLabel ( "路径" ) 
;取驱动器卷标 
DriveGetType ( "路径" ) 
;取驱动器类型 
DriveGetFileSystem ( "路径" ) 
;取驱动器文件格式 
DriveGetSerial ( "路径" ) 
;取驱动器序列号 
DriveStatus ( "路径" )  
;取驱动器状态 
FileGetVersion ( "文件名" ) 
;取文件版本 
FileGetSize ( "文件名" ) 
;取文件大小 
FileGetTime ( "文件名"  ) 
;取文件日期 
FileGetAttrib ( "文件名" ) 
;取文件属性 
FileSaveDialog  ( "标题", "初始目录", "文件类型"  ) 
;文件保存对话框 
FileOpen ( "文件名",打开方式 ) 
;文件打开 
FileOpenDialog ( "标题", "初始目录", "文件类型"  ) 
;文件打开对话框 
FileRead ( 文件号或"文件名",字符个数 ) 
;文件读 
FileReadLine ( 文件号或"文件名"  ) 
;文件读行 
FileCopy ( "源文件", "目标文件"  ) 
;文件复制 
FileClose ( 文件号 ) 
;文件关闭 
FileSelectFolder ( "提示文本", "根目录",参数 ) 
;文件夹选择 
FileDelete ( "路径" )  
;文件删除 
FileExists ( "路径" ) 
;文件是否存在 
FileWrite ( 文件号或"文件名" , "内容" ) 
;文件写 
FileWriteLine ( 文件号或"文件名" , "内容") 
;文件写行 
FileMove ( "源文件", "目标文件"  ) 
;文件移动 
DriveSetLabel ( "路径", "卷标名" ) 
;置驱动器卷标 
FileSetTime ( "文件", "日期", 选项  ) 
;置文件日期 
FileSetAttrib ( "文件", "+-RASHNOT"  ) 
;置文件属性 
 
{键盘控制} 
 
Send ( "按键"  ) 
;发送 
HotKeySet ( "热键"  ) 
;置热键 
 
{鼠标控制} 
 
MouseGetCursor ( )  
;取鼠标指针类型 
MouseGetPos ( ) 
;取鼠标坐标 
MouseDown ( "按键" )  
;鼠标按下 
MouseClickDrag ( "按键", 第一点横坐标, 第一点纵坐标, 第二点横坐标, 第二点纵坐标 )  
;鼠标按住拖动 
MouseClick ( "按键" ]] ) 
;鼠标点击 
MouseUp ( "按键" ) 
;鼠标放开 
MouseMove ( 横坐标,纵坐标  ) 
;鼠标移动 
 
{数学函数} 
 
Exp ( n ) 
;e的n次平方 
BitNOT ( 数值 ) 
;非运算 
BitOR ( 值1,值2 )  
;或运算 
Log ( 数字或数学表达式 )  
;取对数 
ACos (数字或数学表达式) 
;取反余弦 
ATan ( 数字或数学表达式 )  
;取反正切 
ASin ( 数字或数学表达式) 
;取反正弦 
Abs (数字或数学表达式) 
;取绝对值 
Mod ( 值1,值2 ) 
;取模数 
Sqrt ( 数字或数学表达式 ) 
;取平方根 
Random ( 最大值] )  
;取随机数 
Cos (数字或数学表达式)  
;取余弦 
Tan ( 数字或数学表达式 ) 
;取正切 
Sin ( 数字或数学表达式 ) 
;取正弦 
Round (数字或数学表达式 ) 
;四舍五入 
BitXOR ( 值1,值2 ) 
;位或运算 
BitShift ( 值,移动数 ) 
;位移运算 
BitAND ( 值1,值2 ) 
;与运算 
 
{信息框,对话框} 
 
ProgressOn ( "标题", "主文本" ]]] ) 
;打开进度条窗口 
ProgressOff ( ) 
;关闭进度条窗口 
SplashOff ( )  
;关闭置顶窗口 
ProgressSet ( 进度值 ] ) 
;进度设置 
InputBox ( "标题", "提示" ]]]] ) 
;输入框 
MsgBox ( 按钮参数, "标题", "信息文本"  ) 
;信息框 
SplashImageOn ( "标题", "图像文件名" ]]]] ) 
;置顶图像窗口 
SplashTextOn ( "标题","文本"]]]]]]] ) 
;置顶文本窗口 
ToolTip ( "提示文本"  ) 
;置提示文本 
TrayTip ( "标题", "提示文本", 等待时间  ) 
;置托盘气泡提示(2000/xp) 
 
{系统函数} 
 
SoundPlay ( "文件名"  ) 
;播放声音 
Call ( "自定义功能函数" )  
;调用自定义功能函数 
CDTray ( "盘符", "开关命令" )  
;光驱开关 
AdlibEnable ( "自定义功能函数"  ) 
;激活意外窗口处理 
TimerStop ( 时间标志 ) 
;计时结束 
TimerStart ( ) 
;计时开始 
Exit (0) 
;结束 
AdlibDisable ( ) 
;禁止意外窗口处理 
BlockInput ( 参数 ) 
;禁止用户输入 
Break ( 参数 ) 
;禁止用户退出 
MemGetStats ( ) 
;取内存状态 
AutoItWinGetTitle ( ) 
;取系统窗口标题 
PixelGetRGB(横坐标,纵坐标) 
;取像素点RGB三色 
PixelGetColor ( 横坐标 , 纵坐标 )  
;取像素点颜色 
PixelSearch ( 左边, 顶边, 右边, 底边, 颜色值  ] ) 
;搜索颜色 
URLDownloadToFile ( "连接地址及文件名", "存储到的文件名" ) 
;下载文件 
SetError ( 值 )   
;置变量@error 
AutoItWinSetTitle ( "新标题" )  
;置系统窗口标题 
SoundSetWaveVolume ( 音量大小 )  
;置音量 
 
{进程管理} 
 
ProcessWait ( "进程"  ) 
;等待进程存在 
ProcessWaitClose (  "进程"  ) 
;等待进程关闭 
ProcessClose ( "进程" ) 
;关闭进程 
Shutdown ( 关机方式 ) 
;关机 
ProcessExists ( "进程" )  
;进程是否存在 
Sleep ( 时间 )  
;睡眠/暂停运行 
RunAsSet (  ) 
;以别人身份登录运行 
RunWait(@ComSpec & " /c " & 'DOS命令行', "",参数) 
;运行DOS命令 
RunWait ( "文件名" ] ) 
;运行并等待结束 
Run ( "文件名" ] ) 
;运行程序 
 
{注册表管理} 
 
RegRead ( "键路径", "键名" )  
;读键值 
RegDelete ( "键路径"  ) 
;删除键 
RegWrite ( "键路径", "键名", "类型", 值 ) 
;写键值 
 
{字符串管理} 
 
StringFormat ( "格式", $var1  )  
;格式化字符串 
StringLen ( "字符串" )  
;取长度 
StringRight ( "字符串",字符数 ) 
;取右边 
StringMid ( "字符串",开始位置,字符数 ) 
;取中间 
StringLeft ( "字符串",字符数 ) 
;取左边 
StringStripCR ( "字符串" ) 
;删除回车符 
StringStripWS ( "字符串",参数 ) 
;删除空格 
StringTrimRight ( "字符串",字符数 ) 
;删除右边 
StringTrimLeft ( "字符串",字符数 ) 
;删除左边 
StringIsASCII ( "字符串" ) 
;是否为ASCII 
StringIsDigit ( "字符串" ) 
;是否为阿拉伯数字 
StringIsUpper ( "字符串" ) 
;是否为大写 
StringIsFloat ( "字符串" ) 
;是否为浮点小数 
StringIsSpace ( "字符串" )  
;是否为空 
StringIsXDigit ( "字符串" ) 
;是否为十六进制字符 
StringIsAlNum ( "字符串" ) 
;是否为数字 
StringIsLower ( "string" ) 
;是否为小写 
StringIsInt ( "字符串" ) 
;是否为整数 
StringIsAlpha ( "字符串" )  
;是否为字母 
StringAddCR ( "字符串" ) 
;添加换行符 
StringReplace ( "字符串", "查找的字符串", "替换后的字符串" ] ) 
;文本替换 
StringUpper ( "字符串" ) 
;转换为大写 
StringLower ( "字符串" )  
;转换为小写 
StringInStr ( "字符串", "字符"  ) 
;字符包含 
StringSplit ( "字符串", "参考符" ) 
;字符串分离 
 
{变量与转换函数} 
 
IsDeclared ( 变量 ) 
;变量是否被声明 
Asc ( "字符" ) 
;取Asc码 
Eval ( 变量或表达式 ) 
;取变量值 
UBound ( 数组名  ) 
;取数组大小 
Int ( 小数或表达式 ) 
;取整 
Chr ( ASC码 )  
;取字符 
IsAdmin ( )  
;是否为管理员 
IsNumber ( 变量 ) 
;是否为数字 
IsArray ( 变量 ) 
;是否为数组 
IsFloat ( 变量或数值 ) 
;是否为小数 
IsInt ( 变量或数值 ) 
;是否为整数 
IsString ( 变量 )  
;是否为字符 
Dec ( "十六进制" ) 
;转换为十进制 
Hex ( 十进制数, 长度 ) 
;转换为十六进制 
Number ( 表达式 )  
;转换为数字 
String ( 表达式 ) 
;转换为字符 
 
{窗口管理} 
 
WinExists ( "标题"  ) 
;窗口是否存在 
WinActive ( "标题"  ) 
;窗口是否激活 
WinSetOnTop ( "标题", "文字", 参数 ) 
;窗口置顶 
WinWait ( "标题" ] ) 
;等待窗口出现 
WinWaitClose ( "标题" ] ) 
;等待窗口关闭 
WinWaitActive ( "标题" ] ) 
;等待窗口激活 
WinWaitNotActive ( "标题" ] ) 
;等待窗口取消激活状态 
WinMenuSelectItem ( "标题","文字","菜单项1" ] ) 
;调用菜单 
WinClose ( "标题"  ) 
;关闭窗口 
WinMinimizeAllUndo ( )  
;恢复“全部最小化”的窗口 
WinActivate ( "标题"  )  
;激活窗口 
WinKill ( "标题"  )  
;强制关闭窗口 
WinGetTitle ( "标题"  ) 
;取窗口标题 
WinGetHandle ( "标题"  )  
;取窗口句柄 
WinGetClientSize ( "标题"  ) 
;取窗口客户区大小 
WinGetClassList ( "标题"  ) 
;取窗口类列表 
WinGetText ( "标题"  ) 
;取窗口文字 
WinGetCaretPos ( ) 
;取窗口中控件坐标 
WinGetState ( "标题"  )  
;取窗口状态 
WinGetPos ( "标题"  )  
;取窗口坐标 
WinMinimizeAll ( )  
;全部最小化 
WinMove ( "标题", "文字",横坐标,纵坐标] ) 
;移动窗口 
WinSetTitle ( "标题", "文字", "新标题" ) 
;置窗口标题 
WinSetState ( "标题", "文字" ,参数 ) 
;置窗口状态 
 
{控制管理} 
 
ControlCommand ( "窗口标题", "窗口文字", "控件类名称", "命令", "选项" ) 
;发送控制命令 
ControlSend ( "窗口标题", "窗口文字", "控件类名称", "文本"  ) 
;发送文本到控件 
ControlDisable ( "窗口标题", "窗口文字", "控件类名称" ) 
;禁止控件 
ControlGetFocus ( "窗口标题"  ) 
;取焦点控件的类名称 
ControlGetPos ( "窗口标题", "窗口文字", "控件类名称" ) 
;取控件位置 
ControlGetText ( "窗口标题", "窗口文字", "控件类名称" ) 
;取控件文字 
StatusbarGetText ( "窗口标题" ] ) 
;取状态栏文本 
ControlSetText ( "窗口标题", "窗口文字", "控件类名称","新文本" ) 
;设置控件文本 
ControlClick ( "窗口标题", "窗口文字", "控件类名称"  ] ) 
;鼠标点击控件 
ControlShow ("窗口标题", "窗口文字", "控件类名称") 
;显示控件 
ControlMove ( "窗口标题", "窗口文字", "控件类名称",横坐标,纵坐标] ) 
;移动控件 
ControlHide ("窗口标题", "窗口文字", "控件类名称")  
;隐藏控件 
ControlEnable ( "窗口标题", "窗口文字", "控件类名称" ) 
;允许控进 
ControlFocus ( "窗口标题", "窗口文字", "控件类名称" )  
;置焦点 
 
{系统设置} 
 
AutoItSetOption ( "MustDeclareVars",参数 ) 
;变量是否预先声明 
AutoItSetOption ( "WinTitleMatchMode",参数 ) 
;标题匹配方式 
AutoItSetOption ( "WinWaitDelay",参数 ) 
;窗口等待延迟 
AutoItSetOption ( "SendAttachMode",参数 ) 
;发送跟随模式 
AutoItSetOption ( "SendKeyDelay",参数 ) 
;发送延迟 
AutoItSetOption ( "CaretCoordMode",参数 ) 
;符号坐标匹配方式 
AutoItSetOption ( "SendCapslockMode",参数 ) 
;恢复大小写状态 
AutoItSetOption ( "WinDetectHiddenText",参数 ) 
;检测隐藏文字 
AutoItSetOption ( "WinSearchChildren",参数 ) 
;检测子窗口 
AutoItSetOption ( "SendKeyDownDelay",参数 ) 
;键盘按下延迟 
AutoItSetOption ( "MouseClickDownDelay",参数 ) 
;鼠标按下延迟 
AutoItSetOption ( "MouseClickDelay",参数 ) 
;鼠标单击延迟 
AutoItSetOption ( "MouseClickDragDelay",参数 ) 
;鼠标拖动延迟 
AutoItSetOption ( "MouseCoordMode",参数 ) 
;鼠标坐标匹配方式 
AutoItSetOption ( "ExpandEnvStrings",参数 ) 
;特殊符号扩展 
AutoItSetOption ( "TrayIconDebug",参数 ) 
;托盘代码提示 
AutoItSetOption ( "WinTextMatchMode",参数 ) 
;文字匹配方式 
AutoItSetOption ( "PixelCoordMode",参数 ) 
;像素点坐标匹配方式 
AutoItSetOption ( "TrayIconHide",参数 ) 
;隐藏托盘 
AutoItSetOption ( "RunErrorsFatal",参数 ) 
;遇错终止 
 
 
─────────────────── 版务记录 ─────────────────── 
执行:namejm 
说明:该帖转移自 DOS批处理 & 脚本技术(批处理室) 
─────────────────── 版务记录 ─────────────────── 
 
 
 Last edited by namejm on 2007-1-5 at 10:08 PM ] 
 
    
 
  
 |   
 |  
  2006-12-5 11:33 | 
  
 |  
 |   
redtek 
金牌会员
 
      
 
  
  
积分 2902 
发帖 1147 
注册 2006-9-21 
状态 离线
 | 
『第 2 楼』:
 
 
使用 LLM 解释/回答一下
  
dos9527兄在学它吗? 
 
    
 
  
  |  
                  
  
                        Redtek,一个永远在网上流浪的人…… 
 
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |   
 |  
  2006-12-5 23:15 | 
  
 |  
 |   
electronixtar 
铂金会员
 
       
 
  
  
积分 7493 
发帖 2672 
注册 2005-9-2 
状态 离线
 | 
『第 3 楼』:
 
 
使用 LLM 解释/回答一下
  
只学 AutoItX3 
 
    
 
  
  |  
                  
  
                     
C:\>BLOG http://initiative.yo2.cn/ 
C:\>hh.exe ntcmds.chm::/ntcmds.htm 
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |   
 |  
  2006-12-5 23:23 | 
  
 |  
 |   
redtek 
金牌会员
 
      
 
  
  
积分 2902 
发帖 1147 
注册 2006-9-21 
状态 离线
 | 
『第 4 楼』:
 
 
使用 LLM 解释/回答一下
  
看这个贴子以后才知道还有这个脚本语言~:) 
 
    
 
  
  |  
                  
  
                        Redtek,一个永远在网上流浪的人…… 
 
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |   
 |  
  2006-12-5 23:27 | 
  
 |  
 |   
lxmxn 
版主
 
        
 
  
 
积分 11386 
发帖 4938 
注册 2006-7-23 
状态 离线
 | 
 |  
  2006-12-6 01:08 | 
  
 |  
 |   
wydos 
中级用户
 
   
 
  
  
积分 304 
发帖 117 
注册 2006-4-4 
状态 离线
 | 
 |  
  2006-12-6 01:45 | 
  
 |  
 |   
a9319751 
中级用户
 
   
 
  
  
积分 439 
发帖 170 
注册 2006-1-9 
状态 离线
 | 
 |  
  2006-12-6 04:33 | 
  
 |  
 |   
electronixtar 
铂金会员
 
       
 
  
  
积分 7493 
发帖 2672 
注册 2005-9-2 
状态 离线
 | 
『第 8 楼』:
 
 
使用 LLM 解释/回答一下
  
汗一下,随便搜索下 AutoIt ,遍地都是。 
 
    
 
  
  |  
                  
  
                     
C:\>BLOG http://initiative.yo2.cn/ 
C:\>hh.exe ntcmds.chm::/ntcmds.htm 
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |   
 |  
  2006-12-6 05:21 | 
  
 |  
 |   
lxmxn 
版主
 
        
 
  
 
积分 11386 
发帖 4938 
注册 2006-7-23 
状态 离线
 | 
 |  
  2006-12-6 06:09 | 
  
 |  
 |   
redtek 
金牌会员
 
      
 
  
  
积分 2902 
发帖 1147 
注册 2006-9-21 
状态 离线
 | 
『第 10 楼』:
 
 
使用 LLM 解释/回答一下
  
lxmxn兄开始研究AU3了吗? 
 
    
 
  
  |  
                  
  
                        Redtek,一个永远在网上流浪的人…… 
 
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |   
 |  
  2006-12-7 22:53 | 
  
 |  
 |   
dos9527 
中级用户
 
   
 
  
 
积分 252 
发帖 56 
注册 2003-12-29 
状态 离线
 | 
 |  
  2008-7-8 18:10 | 
  
 |  
 |   
tireless 
银牌会员
 
     
 
  
  
积分 2025 
发帖 1122 
注册 2007-9-5 
状态 离线
 | 
 |  
  2008-7-10 13:25 | 
  
 |  
 |   
dos9527 
中级用户
 
   
 
  
 
积分 252 
发帖 56 
注册 2003-12-29 
状态 离线
 | 
 |  
  2008-7-10 18:40 | 
  
 |  
 |   
dos9527 
中级用户
 
   
 
  
 
积分 252 
发帖 56 
注册 2003-12-29 
状态 离线
 | 
『第 14 楼』:
 
 
使用 LLM 解释/回答一下
  
其实 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=23  
* 乘法运算, $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") & ”WindowsTemp”)  
运行完成后,%TEMP%这个环境变量的值将被修改,如果系统盘为 C 盘,则%TEMP%的值为  
“C:WindowsTemp”  
 
 
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=DriveGetFileSystem ( "C:" )  
 
 
10> DriveSpaceFree  
作用:以 MB(兆字节)为单位返回指定路径所在分区的剩余空间  
语法:DriveSpaceFree ( "路径" )  
范例:  
$FreeSpace= DriveSpaceFree ( "C:" ) / 1024  
这样将获得 GB 级别的剩余体积  
 
 
11> FileCreateShortcut  
作用:创建指定文件的快捷方式(.lnk 文件)  
语法:FileCreateShortcut ( "目标文件", "lnk 文件" [, "工作目录"])  
范例:  
 
FileCreateShortcut("D:360safe360Safe.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:SkyfreeSkyfree.esp")  
 
 
14> FileExists  
作用:检查指定文件或目录是否存在  
语法:FileExists ( "路径" )  
返回值:存在则返回 1(真),不存在则返回 0(假)  
范例:  
If FileExists("C:SkyfreeSkyfree.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:WindowsAllUsrRun.ini","PreSetup","Exe","NA")  
这行语句的意思是从 C:WindowsAllUsrRun.ini 这个配置文件中寻找 PreSetup 段, 再从PreSetup 这段下寻找 Exe 关键字,随后读取 Exe 关键字对应的值,如果 Exe返回“NA”。  
 
关键字的值为空则IniRead 是十分常用的函数,常用于读取外部配置文件以改变程序运行的方法。  
 
 
18> IniWrite  
作用:向某标准配置文件(*.ini)中写入某个数值  
语法:IniWrite ( "文件名", "字段名", "关键字", "数值" )  
范例:  
IniWrite("C:SysprepAutoSysprep.ini","SK3","UnDev","True")  
IniWrite和IniRead 是对应的,IniWrite 用来写配置文件 ,上面语句的意思是 寻找c:SysprepAutoSysprep.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:Skyfree1.exe","",@SW_HIDE)  
RunWait("C:Skyfree2.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_MACHINESOFTWARE", "TestKey")  
 
 
26>RegRead  
作用:读取注册表指定的值  
语法:RegRead ( "键名", "值项" )  
范例:  
$Reg = RegRead("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion",  
"ProgramFilesDir")  
 
 
27> RegWrite  
作用:创建一个主键、子键或值项  
语法:RegWrite ( "键名" [,"值项", "类型", 数据] )  
参数:  
类 型 , [ 可 选 参 数 ] 目 标 值 项 的 数 据 类 型 , 比 如 : "REG_SZ" 、 "REG_MULTI_SZ" 、  
"REG_EXPAND_SZ"、"REG_DWORD" 或 "REG_BINARY"。  
范例:  
RegWrite("HKEY_LOCAL_MACHINESOFTWARETest", "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 SettingsAll Users  
「开始」菜单程序)公共用户  
@ProgramsDir,「开始」菜单程序 目录所在路径(例:C:Documents and SettingsAll Users「开始」  
菜单程序) 当前用户  
@Dir,脚本所在目录. (不包含反斜杠符号"")  
@Name,当前运行的脚本的长文件名  
@FullPath,等价于 @Dir & "" & @Name  
@StartMenuCommonDir,公共用户「开始」菜单 目录所在路径(例:C:Documents and SettingsAll  
Users「开始」菜单)  
@StartMenuDir,当前用户的 「开始」菜单目录所在路径  
@StartupCommonDir,公共用户的 启动 目录所在路径(例:C:Documents and SettingsAll Users  
「开始」菜单程序启动)  
@StartupDir,当前用户的 启动 目录所在路径  
@WindowsDir,Windows 文件夹 所在路径,(例:C:WINDOWS)  
以上的 AU3 的宏只是所有 AU3 的宏中比较常用的一部分,如果您想了解更多关于 AU3 宏的信息,  
请查阅 AU3 帮助文档。  
其实大家可能也看出来了,宏有点类似 Windows 的环境变量,当然,其性能和多样性远远超过Windows 环境变量。  
 
讲到这里,关于 AU3 的基础知识就给大家介绍完了。以后我们也可以亲手写一些简单的小程序来满足我们对自动化操作的需要,同样,当我们再碰到高手们写的 AU3 源代码终于也可以看懂一些了。  
编程,其实无论是 AU3 还是其他的,如果想熟练掌握仅仅靠背诵这些语法、函数、宏是不管用的,不过如果你不知道这些语法、函数、宏也是更行不通的。想熟练使用一样东西,就要经常使用它。一开始写程序是有点小困难,但这只是因为您对编程还不熟悉,并不代表着您不能掌握编程。编程很大程度  
上靠的不是智力,而是一个人的毅力! 
 
    
 
  
 |   
 |  
  2008-7-12 21:56 | 
  
 |  
  |