# ErrorLevel

这是表示一些命令执行成功与否的内置变量(有些命令不会改变 ErrorLevel 的值). 值为 0 时通常表示成功, 而其他值一般表示失败. 您也可以自己设置 ErrorLevel 的值.

特别有意义的是 RunWait 会把 ErrorLevel 设置为它所运行程序的退出代码. 大多数程序在成功完成时会产生退出代码零.

每个线程会保持它自己的 ErrorLevel 的值, 这意味着如果当前线程被其他线程中断, 那么当原始线程恢复时它仍会拥有它原来的 ErrorLevel 值, 而不是由中断线程设置的 ErrorLevel 值.

注意: 由于一些命令会设置大于 1 的 ErrorLevel 值, 所以最好不要检查 ErrorLevel 是否大于 1, 而是检查它是否等于零.

下面的列表包含了设置 ErrorLevel 的所有命令, 函数和 GUI/Control 事件, 包括可能的 ErrorLevel 值:

语言元素 | ErrorLevel 值
--- | ---
ClipWait | 0, 1
Control | 0, 1
ControlClick | 0, 1
ControlFocus | 0, 1
ControlGet | 0, 1
ControlGetFocus | 0, 1
ControlGetText | 0, 1
ControlMove | 0, 1
ControlSend / ControlSendRaw | 0, 1
ControlSetText | 0, 1
DllCall() | 0, -1, -2, -3, -4, n, An
Drive | 0, 1
DriveGet | 0, 1
EnvSet | 0, 1
EnvUpdate | 0, 1
FileAppend | 0, 1
FileCopy | 0, n
FileCopyDir | 0, 1
FileCreateDir | 0, 1
FileCreateShortcut | 0, 1
FileDelete | 0, n
FileGetAttrib | 0, 1
FileGetShortcut | 0, 1
FileGetSize | 0, 1
FileGetTime | 0, 1
FileGetVersion | 0, 1
FileInstall | 0, 1
FileMove | 0, n
FileMoveDir | 0, 1
FileRead | 0, 1
FileReadLine | 0, 1
FileRecycle | 0, 1
FileRecycleEmpty | 0, 1
FileRemoveDir | 0, 1
FileSelectFile | 0, 1
FileSelectFolder | 0, 1
FileSetAttrib | 0, n
FileSetTime | 0, 1
GroupActivate | 0, 1
Gui: GuiSize event | 0, 1, 2
Gui: GuiDropFiles event | 0, n
GuiControl | 0, 1
GuiControlGet | 0, 1
Gui control: Link click event | 字符串
Gui control: Custom event | 0, n
Gui control: ListView item change event | "SsFfCc" 的子集
Hotkey | 0, 1, 2, 3, 4, 5, 6, 98, 99
ImageSearch | 0, 1, 2
IniDelete | 0, 1
IniWrite | 0, 1
Input | 0, 1, NewInput, Max, Timeout, Match, EndKey:Name
InputBox | 0, 1, 2
KeyWait | 0, 1
Menu | 0, 1
PixelGetColor | 0, 1
PixelSearch | 0, 1, 2
PostMessage | 0, 1
Process | 0, PID
RegDelete | 0, 1
RegExMatch() | 0, 字符串, -n
RegExReplace() | 0, 字符串, -n
RegRead | 0, 1
RegWrite | 0, 1
Run | 0, ERROR
RunWait | n, ERROR
SendMessage | FAIL, n
SetWorkingDir | 0, 1
Sort: U option | 0, n
SoundGet | 0, 字符串
SoundGetWaveVolume | 0, 1
SoundPlay | 0, 1
SoundSet | 0, 字符串
SoundSetWaveVolume | 0, 1
StatusBarGetText | 0, 1
StatusBarWait | 0, 1, 2
StringGetPos | 0, 1
StringReplace | 0, 1, n
UrlDownloadToFile | 0, 1
WinGetText | 0, 1
WinMenuSelectItem | 0, 1
WinSet Style/ExStyle/Region | 0, 1
WinWait | 0, 1
WinWaitActive / WinWaitNotActive | 0, 1
WinWaitClose | 0, 1

## 示例

最多等待 1 秒, 直到 MyWindow 存在. 如果 WinWait 超时, ErrorLevel 设置为 1, 否则为 0.

    WinWait, MyWindow,, 1
    if ErrorLevel   ; 即既不是空值, 也不是零.
        MsgBox, The window does not exist.
    else
        MsgBox, The window exists.

dftg