我想用hamibot开发安卓自动化脚本,设定某个时间点,程序先识别屏幕上的文字,找到并点击屏幕上的Zerotier Fix字样,然后用悬浮窗显示有没有点击成功或者未识别到(悬浮窗口显示具体的日志内容)请用如下的配置信息进行程序设计
[
{
"name": "start_time",
"type": "text",
"label": "开始执行时间",
"validation": "required",
"help": "设置程序开始执行的时间,格式:HH:MM(如:14:30)"
},
{
"name": "target_text",
"type": "text",
"label": "目标文字",
"validation": "required",
"help": "需要点击的文字内容(如:Zerotier Fix)"
},
{
"name": "log_interval",
"type": "range",
"label": "日志输出间隔",
"min": 1,
"max": 300,
"help": "脚本日志输出的时间间隔,单位:秒",
"show-value": true
},
{
"name": "stop_duration",
"type": "range",
"label": "运行时长",
"min": 1,
"max": 1440,
"help": "脚本停止运行的时间,单位:分钟(1440分钟=24小时)",
"show-value": true
}
]

已存档
3mfrpmn6r4 · 7 天前

回答

Hamibot AI
1
· 7 天前
// 文档地址 https://docs.hamibot.com/
auto.waitFor(); // 请求无障碍服务

// 获取配置参数
var start_time = $config.start_time;
var target_text = $config.target_text;
var log_interval = $config.log_interval;
var stop_duration = $config.stop_duration;

// 解析开始时间
var [hours, minutes] = start_time.split(':').map(Number);
var startTime = new Date();
startTime.setHours(hours, minutes, 0, 0);

// 计算等待时间
var now = new Date();
var waitTime = startTime - now;
if (waitTime > 0) {
    log("等待到指定时间: " + start_time);
    sleep(waitTime);
}

// 定义日志输出函数
function logMessage(message) {
    var logWindow = floaty.rawWindow(<canvas id="logCanvas" />);
    logWindow.setSize(300, 100);
    logWindow.setPosition(100, 100);
    logWindow.setTouchable(true);
    logWindow.setInvisible();

    var paint = new Paint();
    paint.setTextSize(20);
    paint.setColor(colors.parseColor('#000000'));

    logWindow.canvas.on('draw', function (canvas) {
        canvas.drawColor(colors.parseColor('#ffffff'));
        canvas.drawText(message, 10, 30, paint);
    });

    logWindow.show();
    sleep(2000);
    logWindow.dismiss();
}

// 主逻辑
var endTime = new Date();
endTime.setMinutes(endTime.getMinutes() + stop_duration);

while (new Date() < endTime) {
    var bounds = text(target_text).findOne();
    if (bounds) {
        click(bounds.centerX(), bounds.centerY());
        logMessage("成功点击: " + target_text);
    } else {
        logMessage("未识别到: " + target_text);
    }

    sleep(log_interval * 1000);
}
ℹ️ 本回答由 AI 生成,内容仅供参考