不仅在窗口操作及模拟键击功能上有所不同,AutoIt v3 跟 v2.64 及更旧版本是有很大的区别的, 但我们仍提供 v2.64 版本的下载,结果就有些用户尝试转换 已有的脚本. 但是 v3 具有许多以往版本没有的性能, 使得完成GUI自动化操作更加轻松简单, 因此它是更好的一般用途的脚本语言.
在您着手入门 v3 之前阅读以下说明将更利于学习. 另外要提一下的是,在 AutoIt 安装目录下的"Extra" 文件夹里有一个从 v2.64 到 v3 的脚本转换工具.
- 反斜线字符不再是特殊字符,但也许
引号却成为新的问题....
例如, Run('C:\Windows\Notepad.exe "C:\Some
File.txt" ')
- 命令行语法:
只有脚本模式,比如 AutoIt.exe <脚本文件名>
- 变化:
以往的 <命令>, <参数1> [,<参数2>]
已变成 命令(参数1 [,参数2]) 这种函数形式.
- 随着对循环及自定义函数的支持,Goto 已不再存在.
- AutoItv3 可以支持大多编程语言都有的变量类型,比如 $myVar
= "Example of assignment"
- 脚本文件的扩展名从 .aut 变成 .au3.
如果您希望把某个 2.64 版本的脚本改写成 v3 的,
下面这个表格应该会对您有用:
| V 2.64 版本的函数 | V 3 版本中的替代函数 |
| AdlibOn | AdlibRegister |
| BlockInput | BlockInput |
| Break | Break |
| DetectHiddenText | AutoItSetOption("WinDetectHiddenText",...) |
| Exit | Exit |
| EnvAdd | [见 + 运算符的说明] |
| EnvDiv | [见 / 运算符的说明] |
| EnvMult | [见 * 运算符的说明] |
| EnvSub | [见 - 运算符的说明] |
| FileAppend | [FileOpen(...,2) 然后再使用 FileWriteLine] |
| FileCopy | FileCopy |
| FileCreateDir | DirCreate |
| FileDelete | FileDelete or FileRecycle |
| FileInstall | FileInstall |
| FileReadLine | FileReadLine |
| FileRemoveDir | DirRemove |
| FileSelectFile | FileOpenDialog or FileSaveDialog |
| Gosub | [见 Func...EndFunc] |
| Return | [见 Func...EndFunc] |
| Goto | [不再需要] |
| HideAutoItDebug | -- |
| HideAutoItWin | AutoItSetOption("TrayIconHide",...) |
| IfInString | If StringInStr(...) Then |
| IfNotInString | If Not StringInStr(...) Then |
| IfWinExist | If WinExists(...) Then |
| IfWinNotExist | If Not WinExists(...) Then |
| IfWinActive | If WinActive(...) Then |
| IfWinNotActive | If Not WinActive(...) Then |
| IfEqual | [见 = 和 == 运算符的说明] |
| IfNotEqual | [见 <> 运算符的说明] |
| IfGreater | [见 > 运算符的说明] |
| IfGreaterOrEqual | [见 >= 运算符的说明] |
| IfLess | [见 < 运算符的说明] |
| IfLessOrEqual | [见 <= 运算符的说明] |
| IfExist | FileExists |
| IfNotExist | If Not FileExists(...) Then |
| IfMsgBox | [见 MsgBox(...) 和 Select...Case...EndSelect] |
| IniRead | IniRead |
| IniWrite | IniWrite |
| IniDelete | IniDelete |
| InputBox | InputBox |
| LeftClick | MouseClick("left",...) |
| RightClick | MouseClick("right",...) |
| LeftClickDrag | MouseClickDrag("left",...) |
| RightClickDrag | MouseClickDrag("right",...) |
| MouseGetPos | MouseGetPos |
| MouseMove | MouseMove |
| MsgBox | MsgBox |
| Random | Random |
| RegRead | RegRead |
| RegWrite | RegWrite |
| RegDelete | RegDelete |
| Repeat | [见 For...Next] |
| EndRepeat | [见 For...Next] |
| Run | Run |
| RunWait | RunWait |
| Send | Send |
| SetCapslockState | AutoItSetOption("SendCapslockMode",0) + Send ("{CAPSLOCK}") |
| SetEnv | EnvSet |
| SetBatchLines | -- |
| SetKeyDelay | AutoItSetOption("SendKeyDelay",...) |
| SetStoreCapslockMode | AutoItSetOption("SendCapslockMode",...) |
| SetTitleMatchMode | AutoItSetOption("WinTitleMatchMode",...) |
| SetWinDelay | AutoItSetOption("WinWaitDelay",...) |
| Shutdown | Shutdown |
| Sleep | Sleep |
| SplashTextOn | SplashTextOn 和其它 |
| SplashTextOff | SplashOff |
| StringCaseSense | [见各自的函数说明] |
| StringLeft | StringLeft |
| StringRight | StringRight |
| StringMid | StringMid |
| StringLen | StringLen |
| StringReplace | StringReplace |
| StringTrimLeft | StringTrimLeft |
| StringTrimRight | StringTrimRight |
| StringGetPos | StringInStr |
| WinGetActiveStats | [见 WinGetPos, WinGetTitle, WinGetText] |
| WinGetActiveTitle | WinGetTitle("") |
| WinKill | WinKill |
| WinWait | WinWait |
| WinWaitClose | WinWaitClose |
| WinWaitActive | WinWaitActive |
| WinWaitNotActive | WinWaitNotActive |
| WinHide | WinSetState(..., @SW_HIDE) |
| WinShow | WinSetState(..., @SW_SHOW) |
| WinRestore | WinSetState(...,@SW_RESTORE) |
| WinMinimize | WinSetState(...,@SW_MINIMIZE) |
| WinMaximize | WinSetState(...,@SW_MAXIMIZE) |
| WinActivate | WinActivate |
| WinClose | WinClose |
| WinMove | WinMove |
| WinSetTitle | WinSetTitle |
| WinMinimizeAll | WinMinimizeAll |
| WinMinimizeAllUndo | WinMinimizeAllUndo |
| #include | #include |
| %CLIPBOARD% | [见 ClipGet 和 ClipPut] |
| A_OSTYPE | @OSType |
| A_OSVERSION | @OSVersion |
| A_SCRIPTNAME | @ScriptName |
| A_SCRIPTDIR | @ScriptDir |
| A_SCRIPTFULLPATH | @ScriptFullPath |
| A_WORKINGDIR | @WorkingDir |
| A_NUMBATCHLINES | -- |
| A_SEC | @SEC |
| A_MIN | @MIN |
| A_HOUR | @HOUR |
| A_MDAY | @MDAY |
| A_MON | @MON |
| A_YEAR | @YEAR |
| A_WDAY | @WDAY |
| A_YDAY | @YDAY |