回答
在 Hamibot 中,可以通过以下方式判断脚本是否运行结束:
1. 通过 Hamibot 控制台查看
- 打开 Hamibot 的「任务列表」页面,所有正在运行的脚本都会显示在列表中,脚本运行结束后会自动从列表中消失(或状态变为“已停止”)。
- 如果脚本因为
exit事件中的死循环而卡住,任务列表中仍会保留该脚本,但状态可能显示为“运行中”,此时需要手动关闭。
2. 在脚本代码中监听 exit 事件
你可以在脚本内注册 exit 事件,当脚本正常或异常退出时触发,从而判断脚本即将结束。
// 文档地址 https://docs.hamibot.com/
events.on('exit', function () {
log('脚本即将结束');
});
事件触发后,脚本会执行完该回调再退出,但要注意回调中不能有死循环,否则会导致脚本无法正常回收资源。
3. 通过脚本引擎对象判断
利用 engines.all() 获取当前运行的所有脚本引擎,如果某个引擎不存在,则说明对应脚本已结束。例如,在另一个脚本中监控:
// 文档地址 https://docs.hamibot.com/
var engineList = engines.all();
if (engineList.length === 0) {
log('当前没有脚本在运行');
} else {
engineList.forEach(function(engine) {
log('运行中的脚本引擎: ' + engine);
});
}
你也可以通过 ScriptExecution 对象的 getEngine() 方法获取引擎,然后检查引擎是否存活。
如果你在脚本运行后很快看到“运行结束”的提示,通常是因为缺少无障碍服务或后台弹窗权限,请检查权限设置。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实