function btn_position_click(x) {
if (x) {
var b = x.bounds();
var c = click(b.centerX(), b.centerY())
console.log("点击是否成功:"+c);
}
}
以上代码如何改成随机偏移点击

crv3yukjc8 · 1 天前
第 1 条补充
·
1 天前

function HID_position_click(x) {
if (x) {
var b = x.bounds();
//var y = "http://192.168.123.127:8866";
var y = surl;
var Downurl = y+'/hid?cmd=touchDown:'+b.centerX()+','+b.centerY()
var Upurl = y +'/hid?cmd=touchUp'
http.get(Downurl);
sleep(50)
http.get(Upurl);
}
}
参照一下,改成随机偏移点击

第 2 条补充
·
1 天前

sleep 随机 20ms到50ms

回答

Hamibot AI
1
· 1 天前

文档地址 https://docs.hamibot.com/

function btn_position_click(x) {
    if (x) {
        var b = x.bounds();
        var centerX = b.centerX();
        var centerY = b.centerY();
        
        // 设置随机偏移量,例如在 -20 到 +20 像素范围内随机
        var offset = 20;
        var randomX = centerX + Math.random() * (offset * 2) - offset;
        var randomY = centerY + Math.random() * (offset * 2) - offset;
        
        // 执行点击并记录结果
        var c = click(randomX, randomY);
        console.log("点击位置: (" + randomX + ", " + randomY + "),点击是否成功:" + c);
    }
}

该代码会在目标控件中心点附近一个 ±20 像素的范围内进行随机点击,避免因固定点击点被检测的问题。你可以根据实际需要调整 offset 的值来控制偏移范围。


补充回答 1

文档地址 https://docs.hamibot.com/

function HID_position_click(x) {
    if (x) {
        var b = x.bounds();
        var centerX = b.centerX();
        var centerY = b.centerY();

        // 设置随机偏移量,例如在 ±20 像素范围内
        var offset = 20;
        var randomX = parseInt(centerX + Math.random() * (offset * 2) - offset);
        var randomY = parseInt(centerY + Math.random() * (offset * 2) - offset);

        var y = surl; // 确保 surl 已定义
        var Downurl = y + '/hid?cmd=touchDown:' + randomX + ',' + randomY;
        var Upurl = y + '/hid?cmd=touchUp';

        // 模拟按下
        http.get(Downurl);
        sleep(50); // 按住时间
        // 模拟抬起
        http.get(Upurl);

        console.log("执行HID点击: (" + randomX + ", " + randomY + ")");
    }
}

说明:

  • 在控件中心坐标的基础上,增加了 ±20 像素的随机偏移。
  • 使用 Math.random() 生成偏移值,并通过 parseInt 确保坐标为整数(HID 协议通常需要整数坐标)。
  • surl 需要在调用此函数前已定义并赋值,确保 URL 正确。

你可以根据实际设备或场景调整 offset 的大小。


补充回答 2

文档地址 https://docs.hamibot.com/

function HID_position_click(x) {
    if (x) {
        var b = x.bounds();
        var centerX = b.centerX();
        var centerY = b.centerY();

        // 设置随机偏移量,例如在 ±20 像素范围内
        var offset = 20;
        var randomX = parseInt(centerX + Math.random() * (offset * 2) - offset);
        var randomY = parseInt(centerY + Math.random() * (offset * 2) - offset);

        var y = surl; // 确保 surl 已定义
        var Downurl = y + '/hid?cmd=touchDown:' + randomX + ',' + randomY;
        var Upurl = y + '/hid?cmd=touchUp';

        // 执行按下
        http.get(Downurl);

        // 随机等待 20ms 到 50ms
        var randomSleep = parseInt(Math.random() * (50 - 20) + 20);
        sleep(randomSleep);

        // 执行抬起
        http.get(Upurl);

        console.log("执行HID点击: (" + randomX + ", " + randomY + "),持续时间: " + randomSleep + "ms");
    }
}

说明:

  • Math.random() * (50 - 20) + 20 生成 20 到 50 之间的随机浮点数。
  • parseInt 确保睡眠时间是整数毫秒。
  • 每次点击的按住时长在 20ms 到 50ms 之间随机,增加操作的自然性。
ℹ️ 本回答由 AI 生成,内容仅供参考