不仅在窗口操作及模拟键击功能上有所不同,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 |