首页下载按键精灵脚本调试脚本安全高级脚本故障排查工具对比

按键精灵高级脚本编写:条件判断、循环与函数封装

已掌握基础命令?本教程深入 If/ElseIf 条件判断、For/While 循环控制、Function 函数封装和错误处理(On Error Goto),附带可运行的完整脚本示例。

如果您还不会基础操作,建议先看 零基础按键精灵脚本编写速成教程

更新于 2026-06-15

一、条件判断:If / ElseIf / Else

条件判断让脚本能够"做选择"。基本语法:If 条件 Then ... ElseIf 条件 Then ... Else ... End If

示例 — 根据窗口是否存在选择不同操作:

If Plugin.Window.Find("记事本") <> 0 Then
    TracePrint "记事本已打开,直接激活窗口"
    Call Plugin.Window.Active(Plugin.Window.Find("记事本"))
Else
    TracePrint "记事本未打开,正在启动..."
    RunApp "notepad.exe"
    Delay 2000  // 等待程序启动
End If

二、循环控制:For / While / Do While

For 循环(已知循环次数时使用):

// 重复点击 10 次
For i = 1 To 10
    MoveTo 500, 400
    Delay 100
    LeftClick 1
    Delay 500
    TracePrint "第 " & i & " 次点击完成"
Next

While 循环(条件控制,条件为真时持续执行):

// 等待指定颜色出现
Dim found : found = 0
While found = 0
    Dim x, y
    FindColor 0, 0, 1920, 1080, "FFFFFF", x, y
    If x > 0 Then
        found = 1  // 找到了,退出循环
        TracePrint "找到目标颜色在 " & x & ", " & y
    End If
    Delay 500
Wend

Do While 循环(至少执行一次):

// 不断按 Enter 直到窗口出现
Do
    KeyPress "Enter", 1
    Delay 1000
Loop While Plugin.Window.Find("目标窗口") = 0

三、函数封装:Function / Sub

当一段代码需要重复使用时,封装为函数。语法:Function 函数名(参数列表) ... End Function

示例 — 封装一个"移动到指定位置并点击"的操作:

Function ClickAt(x, y, delayBefore, delayAfter)
    // 移动到目标位置
    MoveTo x, y
    Delay delayBefore
    // 单击
    LeftClick 1
    Delay delayAfter
End Function

// 调用:在 (500,400) 和 (600,500) 各点一次
Call ClickAt(500, 400, 200, 300)
Call ClickAt(600, 500, 200, 300)

进阶 — 带返回值的函数:

Function Add(a, b)
    Add = a + b  // 函数名 = 返回值
End Function

Dim result
result = Add(10, 20)
TracePrint "10 + 20 = " & result  // 输出: 10 + 20 = 30

四、错误处理:On Error Goto

在脚本开头添加错误处理,让脚本在出错时优雅退出而不是直接崩溃:

On Error Goto ErrHandler

// ---------- 主代码 ----------
Dim x, y
FindColor 0, 0, 1920, 1080, "FFFFFF", x, y
If x > 0 Then
    MoveTo x, y
    LeftClick 1
    TracePrint "操作完成"
Else
    TracePrint "未找到目标颜色"
End If
// ------------------------------

ExitScript  // 正常结束,不进入错误处理

Rem ErrHandler
    // 错误处理区
    TracePrint "脚本出错!错误信息: " & Err.Description
    TracePrint "出错行号: " & Err.Number
    MessageBox "脚本运行出错,请截图此弹窗联系作者"

⚠️ 注意:使用 On Error Goto 后,必须在主代码末尾加 ExitScript,否则正常执行完也会跳进错误处理区。

常见问题

按键精灵脚本怎么加条件判断?

使用 If 条件 Then 语句。条件可以是变量比较(如 If a > 10 Then)、函数返回值(如 If FindColor(x,y,"000000") = 1 Then)或逻辑组合(如 If a > 10 And b < 5 Then)。

按键精灵脚本如何循环执行?

For i = 1 To N ... Next 实现固定次数循环;用 While 条件 ... Wend 实现条件循环(条件为真时持续执行);用 Do ... Loop While 条件 实现至少执行一次的循环。

按键精灵函数怎么传参数?

在 Function 语句中声明参数名:Function MyFunc(a, b),调用时传值:Call MyFunc(10, "hello")。参数默认是值传递(ByVal),使用 ByRef 关键字可实现引用传递。

下载按键精灵 开始编写高级脚本

安装包 MD5 公开可验证,兼容 Win10/Win11。

毒霸安全检测 MD5公开可验证 无恶意广告弹窗
下载按键精灵 Windows 版