YYPOST群发软件 发表于 2026-2-3 09:03:06

AIWROK软件安卓汇集软件点击方法示例



AIWROK软件安卓汇集软件点击方法示例






// 安卓AIWROK汇集软件点击
// 🍎交流QQ群711841924群一,苹果内测群,528816639
// 兼容ES5标准,仅支持安卓设备运行

// 初始化日志窗口
if (typeof logWindow !== 'undefined') {
    print.log(logWindow.show());
    print.log(logWindow.clear());
    print.log(logWindow.setHeight(2500));
    print.log(logWindow.setWidth(1500));
    print.log(logWindow.setNoClickModel());
}

// 兼容ES5的延迟函数
function es5Sleep(ms) {
    if (typeof sleep !== 'undefined') {
      if (typeof sleep.millisecond === 'function') {
            sleep.millisecond(ms);
      } else if (typeof sleep === 'function') {
            sleep(ms);
      }
    } else {
      // 纯JavaScript实现的延迟
      var start = new Date().getTime();
      while (new Date().getTime() - start < ms) {
            // 空循环延迟
      }
    }
}



// ==================== 1. 按钮点击事件监听 ====================

/**
* 设置按钮点击事件监听器
* @param {Object} button - 按钮对象
* @param {Function} callback - 点击回调函数
*/
function setButtonClickListener(button, callback) {
    if (button && button.setOnClickListener) {
      try {
            button.setOnClickListener(callback);
            print.log("按钮点击事件监听器设置成功");
      } catch (e) {
            print.log("设置按钮点击事件监听器时出错: " + e);
      }
    } else {
      print.log("无效的按钮对象");
    }
}

// 示例用法
function buttonClickExample() {
    // 假设我们有一个按钮对象
    // var btn_start = f1.findViewById('startButton');
   
    // 设置点击事件
    /*
    setButtonClickListener(btn_start, function() {
      printl("启动按钮被点击");
      // 执行启动逻辑
    });
    */
   
    print.log("按钮点击事件示例演示完成");
}

// ==================== 2. 屏幕坐标点击 ====================

/**
* 点击屏幕指定坐标
* @param {number} x - x坐标
* @param {number} y - y坐标
* @returns {boolean} 是否点击成功
*/
function clickScreen(x, y) {
    try {
      if (typeof auto !== 'undefined' && typeof auto.clickPoint === 'function') {
            auto.clickPoint(x, y);
            print.log("使用auto.clickPoint点击坐标 (" + x + ", " + y + ")");
            return true;
      } else if (typeof hid !== 'undefined' && typeof hid.click === 'function') {
            hid.click(x, y);
            print.log("使用hid.click点击坐标 (" + x + ", " + y + ")");
            return true;
      } else {
            print.log("未找到可用的点击方法");
            return false;
      }
    } catch (e) {
      print.log("点击屏幕失败: " + e);
      return false;
    }
}

// 示例用法
function screenClickExample() {
    // 点击屏幕中心位置
    var screenWidth = 1080; // 假设屏幕宽度
    var screenHeight = 1920; // 假设屏幕高度
    var centerX = screenWidth / 2;
    var centerY = screenHeight / 2;
   
    clickScreen(centerX, centerY);
    print.log("屏幕坐标点击示例演示完成");
}

// ==================== 3. 带重试机制的安全点击 ====================

/**
* 安全点击(带重试机制)
* @param {number} x - x坐标
* @param {number} y - y坐标
* @param {number} retries - 重试次数
* @returns {boolean} 是否点击成功
*/
function safeClick(x, y, retries) {
    if (typeof retries === 'undefined') retries = 3;
   
    for (var i = 0; i < retries; i++) {
      try {
            if (typeof hid !== 'undefined' && typeof hid.click === 'function') {
                hid.click(x, y);
                print.log("点击坐标 (" + x + ", " + y + ") 成功");
                return true;
            } else if (typeof auto !== 'undefined' && typeof auto.clickPoint === 'function') {
                auto.clickPoint(x, y);
                print.log("点击坐标 (" + x + ", " + y + ") 成功");
                return true;
            }
      } catch (error) {
            print.log("点击失败,重试第 " + (i + 1) + " 次:" + error);
            // 兼容ES5的sleep调用
            es5Sleep(500);
      }
    }
    print.log("点击坐标 (" + x + ", " + y + ") 最终失败");
    return false;
}

// 示例用法
function safeClickExample() {
    safeClick(500, 500, 3);
    print.log("安全点击示例演示完成");
}

// ==================== 4. 找字点击 ====================

/**
* 找字并点击功能
* @param {string} targetText - 要查找并点击的文字
* @param {array} region - 搜索区域,可选参数
* @param {object} ocr - OCR实例
* @returns {boolean} 是否成功点击
*/
function findTextAndClick(targetText, region, ocr) {
    try {
      var result;
      
      if (region && region.length == 4) {
            // 区域找字
            // result = ocr.recognize(region, region, region, region);
            print.log("在区域 " + region + " 中查找文字: " + targetText);
      } else {
            // 全屏找字
            // result = ocr.recognize(0, 0, screenWidth, screenHeight);
            print.log("在全屏中查找文字: " + targetText);
      }
      
      // 模拟找到文字的情况
      var mockResult = {
            text: targetText,
            centerX: 500,
            centerY: 500
      };
      
      if (mockResult) {
            print.log('准备点击文字: ' + mockResult.text);
            print.log('点击坐标: (' + mockResult.centerX + ', ' + mockResult.centerY + ')');
            
            // 添加随机偏移模拟真实点击
            var randomX = mockResult.centerX + (Math.random() - 0.5) * 10;
            var randomY = mockResult.centerY + (Math.random() - 0.5) * 10;
            
            clickScreen(randomX, randomY);
            es5Sleep(500);
            
            return true;
      } else {
            print.log('未找到可点击的文字: ' + targetText);
            return false;
      }
    } catch (e) {
      print.log('找字点击失败: ' + e);
      return false;
    }
}

// 示例用法
function findTextClickExample() {
    findTextAndClick("确定", );
    print.log("找字点击示例演示完成");
}

// ==================== 5. 系统事件监听 ====================

/**
* 设置系统事件监听器
*/
function setupSystemEventListeners() {
    // 开始按钮事件监听
    try {
      if (typeof event !== 'undefined' && typeof event.onStartEvent === 'function') {
            event.onStartEvent(function(){
                print.log('开始按钮被点击');
            });
            print.log("开始按钮事件监听器设置成功");
      }
    } catch (e) {
      print.log("设置开始按钮事件监听器时出错: " + e);
    }
   
    // 暂停按钮事件监听
    try {
      if (typeof event !== 'undefined' && typeof event.onPauseEvent === 'function') {
            event.onPauseEvent(function(){
                print.log('暂停按钮被点击');
            });
            print.log("暂停按钮事件监听器设置成功");
      }
    } catch (e) {
      print.log("设置暂停按钮事件监听器时出错: " + e);
    }
   
    // 停止按钮事件监听
    try {
      if (typeof event !== 'undefined' && typeof event.onStopEvent === 'function') {
            event.onStopEvent(function(){
                print.log('停止按钮被点击');
            });
            print.log("停止按钮事件监听器设置成功");
      }
    } catch (e) {
      print.log("设置停止按钮事件监听器时出错: " + e);
    }
}

// 示例用法
function systemEventExample() {
    setupSystemEventListeners();
    print.log("系统事件监听示例演示完成");
}

// ==================== 6. 网页按钮点击 ====================

/**
* 网页按钮点击示例代码
* 注意:此代码应在H5页面中使用
*/
var webButtonClickExample = {
    // HTML部分
    html: '<button onclick="showTextValue()">显示文本值</button> ' +
          '<button onclick="runStartScript()">执行开始脚本</button> ' +
          '<button class="danger" onclick="closePage()">关闭页面</button>',
   
    // JavaScript部分
    javascript: '// 显示文本值\n' +
                'function showTextValue() {\n' +
                '    var inputText = document.getElementById("inputText");\n' +
                '    if (inputText) {\n' +
                '      printLog("文本值: " + inputText.value);\n' +
                '    }\n' +
                '}\n' +
                '\n' +
                '// 执行开始脚本\n' +
                'function runStartScript() {\n' +
                '    printLog("执行开始脚本");\n' +
                '    // 这里可以调用AIWROK的API\n' +
                '}\n' +
                '\n' +
                '// 关闭页面\n' +
                'function closePage() {\n' +
                '    printLog("关闭页面");\n' +
                '    if (typeof dismiss === "function") {\n' +
                '      dismiss();\n' +
                '    }\n' +
                '}\n' +
                '\n' +
                '// 使用addEventListener方式\n' +
                'function setupEventListeners() {\n' +
                '    var buttons = document.querySelectorAll("button");\n' +
                '    for (var i = 0; i < buttons.length; i++) {\n' +
                '      (function(button) {\n' +
                '            button.addEventListener("click", function() {\n' +
                '                printLog("按钮被点击: " + this.textContent);\n' +
                '            });\n' +
                '      })(buttons);\n' +
                '    }\n' +
                '}'
};

// ==================== 7. HID点击方式 ====================

/**
* 使用HID方式点击屏幕
* @param {number} x - x坐标
* @param {number} y - y坐标
* @returns {boolean} 是否点击成功
*/
function hidClick(x, y) {
    try {
      if (typeof hid !== 'undefined' && typeof hid.click === 'function') {
            hid.click(x, y);
            print.log("HID点击坐标 (" + x + ", " + y + ") 成功");
            return true;
      } else {
            print.log("HID模块不可用,尝试使用其他点击方式");
            // 回退到通用点击方法
            return clickScreen(x, y);
      }
    } catch (e) {
      print.log("HID点击失败: " + e);
      return false;
    }
}

// 示例用法
function hidClickExample() {
    hidClick(500, 500);
    print.log("HID点击示例演示完成");
}

// ==================== 8. 组合点击示例 ====================

/**
* 组合点击示例
* 演示多种点击方式的组合使用
*/
function combinedClickExample() {
    print.log("=== 组合点击示例开始 ===");
   
    // 1. 先点击屏幕中央
    clickScreen(540, 960);
    // 兼容ES5的延迟处理
    es5Sleep(1000);
   
    // 2. 使用安全点击点击确定按钮
    safeClick(800, 1600, 3);
    // 兼容ES5的延迟处理
    es5Sleep(1000);
   
    // 3. 模拟找字点击
    findTextAndClick("下一步");
   
    print.log("=== 组合点击示例结束 ===");
}

// ==================== 9. 找图点击 ====================

/**
* 找图并点击功能
* @param {string} imagePath - 图片路径
* @returns {boolean} 是否成功点击
*/
function findImageAndClick(imagePath) {
    try {
      print.log("开始找图: " + imagePath);
      
      // 检查opencv是否可用
      if (typeof opencv !== 'undefined' && typeof opencv.findImagesEx === 'function') {
            var detects = opencv.findImagesEx(imagePath);
            
            if (detects !== null && detects.length > 0) {
                print.log("找到目标: " + detects);
               
                // 点击第一个找到的目标
                if (typeof detects !== 'undefined' && typeof detects.click === 'function') {
                  detects.click();
                  print.log("点击目标成功");
                  return true;
                } else if (typeof detects !== 'undefined' && typeof detects.x !== 'undefined' && typeof detects.y !== 'undefined') {
                  // 如果没有click方法,尝试直接点击坐标
                  var x = detects.x;
                  var y = detects.y;
                  clickScreen(x, y);
                  print.log("点击坐标 (" + x + ", " + y + ") 成功");
                  return true;
                }
            } else {
                print.log("未找到目标");
                return false;
            }
      } else {
            print.log("opencv模块不可用");
            return false;
      }
    } catch (e) {
      print.log("找图点击失败: " + e);
      return false;
    }
}

// 示例用法
function findImageClickExample() {
    // 使用指定的图片名称
    var result = findImageAndClick('图色766772.cv');
    print.log("找图点击示例演示完成,结果: " + result);
}

// ==================== 10. 其他点击方式 ====================

/**
* 点击百分比坐标
* @param {number} percentX - X轴百分比 (0-100)
* @param {number} percentY - Y轴百分比 (0-100)
* @returns {boolean} 是否点击成功
*/
function clickPercent(percentX, percentY) {
    try {
      if (typeof auto !== 'undefined' && typeof auto.clickPercent === 'function') {
            auto.clickPercent(percentX, percentY);
            print.log("使用auto.clickPercent点击百分比坐标 (" + percentX + ", " + percentY + ")");
            return true;
      } else if (typeof agent !== 'undefined' && typeof agent.clickPercent === 'function') {
            agent.clickPercent(percentX, percentY);
            print.log("使用agent.clickPercent点击百分比坐标 (" + percentX + ", " + percentY + ")");
            return true;
      } else if (typeof hid !== 'undefined' && typeof hid.clickPercent === 'function') {
            hid.clickPercent(percentX, percentY);
            print.log("使用hid.clickPercent点击百分比坐标 (" + percentX + ", " + percentY + ")");
            return true;
      } else {
            print.log("未找到可用的百分比点击方法");
            return false;
      }
    } catch (e) {
      print.log("点击百分比坐标失败: " + e);
      return false;
    }
}

/**
* 连续点击
* @param {number} x - x坐标
* @param {number} y - y坐标
* @param {number} count - 点击次数
* @param {number} interval - 点击间隔(毫秒)
* @returns {boolean} 是否点击成功
*/
function clickMultiple(x, y, count, interval) {
    try {
      if (typeof hid !== 'undefined' && typeof hid.clicks === 'function') {
            hid.clicks(x, y, count, interval);
            print.log("使用hid.clicks连续点击 (" + x + ", " + y + ") " + count + " 次");
            return true;
      } else {
            // 模拟连续点击
            for (var i = 0; i < count; i++) {
                clickScreen(x, y);
                if (i < count - 1) {
                  es5Sleep(interval || 100);
                }
            }
            print.log("模拟连续点击 (" + x + ", " + y + ") " + count + " 次");
            return true;
      }
    } catch (e) {
      print.log("连续点击失败: " + e);
      return false;
    }
}

/**
* 代理模式点击
* @param {number} x - x坐标
* @param {number} y - y坐标
* @returns {boolean} 是否点击成功
*/
function agentClick(x, y) {
    try {
      if (typeof agent !== 'undefined' && typeof agent.click === 'function') {
            agent.click(x, y);
            print.log("使用agent.click点击坐标 (" + x + ", " + y + ")");
            return true;
      } else {
            print.log("代理模块不可用");
            return false;
      }
    } catch (e) {
      print.log("代理点击失败: " + e);
      return false;
    }
}

/**
* 元素点击
* @param {Object} node - 元素节点
* @returns {boolean} 是否点击成功
*/
function clickElement(node) {
    try {
      if (node && typeof node.click === 'function') {
            node.click();
            print.log("点击元素成功");
            return true;
      } else if (node && typeof node.clickPoint === 'function') {
            node.clickPoint();
            print.log("点击元素坐标成功");
            return true;
      } else {
            print.log("无效的元素节点或无点击方法");
            return false;
      }
    } catch (e) {
      print.log("点击元素失败: " + e);
      return false;
    }
}

/**
* 监听点击事件
* @param {Function} callback - 点击回调函数
* @returns {boolean} 是否设置成功
*/
function setupClickEventListener(callback) {
    try {
      if (typeof event !== 'undefined' && typeof event.onClickEvent === 'function') {
            event.onClickEvent(callback);
            print.log("点击事件监听器设置成功");
            return true;
      } else {
            print.log("事件模块不可用");
            return false;
      }
    } catch (e) {
      print.log("设置点击事件监听器失败: " + e);
      return false;
    }
}

// 示例用法
function otherClickMethodsExample() {
    print.log("=== 其他点击方式示例开始 ===");
   
    // 测试百分比点击
    clickPercent(50, 50);
    es5Sleep(500);
   
    // 测试连续点击
    clickMultiple(500, 500, 3, 200);
    es5Sleep(500);
   
    // 测试代理点击
    agentClick(600, 600);
    es5Sleep(500);
   
    // 测试点击事件监听
    setupClickEventListener(function(x, y) {
      print.log("监听到点击事件: (" + x + ", " + y + ")");
    });
   
    print.log("=== 其他点击方式示例结束 ===");
}

// ==================== 演示所有点击方式 ====================

/**
* 演示所有点击方式
*/
function demoAllClickMethods() {
    print.log("\n==================== 安卓AIWROK点击方式演示 ====================");
   
    print.log("\n1. 按钮点击事件监听示例:");
    buttonClickExample();
   
    print.log("\n2. 屏幕坐标点击示例:");
    screenClickExample();
   
    print.log("\n3. 安全点击示例:");
    safeClickExample();
   
    print.log("\n4. 找字点击示例:");
    findTextClickExample();
   
    print.log("\n5. 系统事件监听示例:");
    systemEventExample();
   
    print.log("\n6. HID点击示例:");
    hidClickExample();
   
    print.log("\n7. 组合点击示例:");
    combinedClickExample();
   
    print.log("\n8. 找图点击示例:");
    findImageClickExample();
   
    print.log("\n9. 其他点击方式示例:");
    otherClickMethodsExample();
   
    print.log("\n==================== 演示完成 ====================");
    print.log("\n网页按钮点击示例代码:\n" + webButtonClickExample.html);
    print.log("\n网页按钮点击JavaScript代码:\n" + webButtonClickExample.javascript);
}

// 运行演示
demoAllClickMethods();

// 导出常用函数
var ClickUtils = {
    click: clickScreen,
    safeClick: safeClick,
    findTextAndClick: findTextAndClick,
    findImageAndClick: findImageAndClick,
    hidClick: hidClick,
    clickPercent: clickPercent,
    clickMultiple: clickMultiple,
    agentClick: agentClick,
    clickElement: clickElement,
    setupClickEventListener: setupClickEventListener,
    setButtonClickListener: setButtonClickListener,
    setupSystemEventListeners: setupSystemEventListeners
};

页: [1]
查看完整版本: AIWROK软件安卓汇集软件点击方法示例