 | |  |  | 苹果脚本屏幕类screen例子
- /**
- * ============================================
- * AIWROK 智能屏幕自动化助手 Pro
- * 版本:1.0.0
- * 平台:iOS (AIWROK)
- * QQ 群:711841924 群一,苹果内测群 528816639
- * ============================================
- *
- * 功能特性:
- * 1. 🎯 OCR 智能识别屏幕应用图标
- * 2. 👆 自动点击打开目标应用
- * 3. 📊 H5 可视化控制面板
- * 4. 📝 实时日志记录系统
- * 5. ⚡ 一键快捷操作
- * 6. 🔍 自定义区域扫描
- */
- // ==================== 全局配置 ====================
- var AppConfig = {
- appName: "智能屏幕自动化助手 Pro",
- version: "1.0.0",
- debugMode: true,
- ocrRegion: [0, 0, 1, 1], // 默认全屏 OCR
- clickDelay: 500, // 点击延迟 (ms)
- retryTimes: 3, // 重试次数
- logEnabled: true
- };
- // ==================== 工具函数 ====================
- /**
- * 阻塞延迟函数
- * @param {number} ms - 毫秒数
- */
- function sleep(ms) {
- var start = Date.now();
- while (Date.now() - start < ms) {
- // 阻塞等待
- }
- }
- /**
- * 输出日志 (兼容多种日志方式)
- * @param {string} message - 日志内容
- */
- function log(message) {
- if (AppConfig.logEnabled) {
- printl(message);
- // 同时发送到 LogManagerH5(如果可用)
- try {
- LogManagerH5.info(message);
- } catch (e) {
- // LogManagerH5 不可用时忽略
- }
- }
- }
- /**
- * 输出分隔线
- */
- function separator() {
- log("========================================");
- }
- // ==================== 核心功能类 ====================
- /**
- * 屏幕操作管理器
- */
- var ScreenManager = {
- /**
- * 获取屏幕尺寸
- */
- getScreenSize: function() {
- return {
- width: screen.getScreenWidth(),
- height: screen.getScreenHeight()
- };
- },
-
- /**
- * 全尺寸截图
- * @returns {Image} 截图对象
- */
- captureFull: function() {
- try {
- log("[截图] 执行全尺寸截图...");
- var image = screen.screenShotFull();
- log("[截图] 截图完成");
- return image;
- } catch (e) {
- log("[错误] 截图失败:" + e);
- return null;
- }
- },
-
- /**
- * 缩放截图
- * @param {number} width - 宽度
- * @param {number} height - 高度
- * @param {number} compress - 压缩率 (0-100)
- * @returns {Image} 截图对象
- */
- captureScaled: function(width, height, compress) {
- try {
- log("[截图] 执行缩放截图:" + width + "x" + height + ", 压缩率:" + compress);
- var image = screen.screenShot(width, height, compress);
- log("[截图] 截图完成");
- return image;
- } catch (e) {
- log("[错误] 截图失败:" + e);
- return null;
- }
- },
-
- /**
- * 执行 OCR 识别
- * @param {Image} image - 图像对象
- * @param {Array} region - 识别区域 [left, top, right, bottom]
- * @returns {OcrResult} OCR 结果
- */
- recognizeText: function(image, region) {
- try {
- var ocrRegion = region || AppConfig.ocrRegion;
- log("[OCR] 开始识别,区域:[" + ocrRegion.join(", ") + "]");
- var result = image.ocr(ocrRegion[0], ocrRegion[1], ocrRegion[2], ocrRegion[3]);
- log("[OCR] 识别完成");
- return result;
- } catch (e) {
- log("[错误] OCR 识别失败:" + e);
- return null;
- }
- },
-
- /**
- * 锁定屏幕缓存
- */
- lockCache: function() {
- try {
- screen.lockScreen();
- log("[缓存] 屏幕缓存已锁定");
- } catch (e) {
- log("[错误] 锁定缓存失败:" + e);
- }
- },
-
- /**
- * 解锁屏幕缓存
- */
- unlockCache: function() {
- try {
- screen.unLockScreen();
- log("[缓存] 屏幕缓存已解锁");
- } catch (e) {
- log("[错误] 解锁缓存失败:" + e);
- }
- }
- };
- /**
- * 点击操作管理器
- */
- var ClickManager = {
- /**
- * 百分比位置点击
- * @param {number} xPercent - X 轴百分比 (0-1)
- * @param {number} yPercent - Y 轴百分比 (0-1)
- */
- clickPercent: function(xPercent, yPercent) {
- try {
- log("[点击] 百分比坐标:(" + xPercent + ", " + yPercent + ")");
- hid.clickPercent(xPercent, yPercent);
- sleep(AppConfig.clickDelay);
- log("[点击] 点击成功");
- } catch (e) {
- log("[错误] 点击失败:" + e);
- }
- },
-
- /**
- * 绝对坐标点击
- * @param {number} x - X 坐标
- * @param {number} y - Y 坐标
- */
- clickAbsolute: function(x, y) {
- try {
- log("[点击] 绝对坐标:(" + x + ", " + y + ")");
- hid.click(x, y);
- sleep(AppConfig.clickDelay);
- log("[点击] 点击成功");
- } catch (e) {
- log("[错误] 点击失败:" + e);
- }
- },
-
- /**
- * 点击 OCR 识别到的文本
- * @param {Detect} detect - OCR 检测对象
- * @param {string} clickType - 点击类型:"center" | "random"
- */
- clickOcrTarget: function(detect, clickType) {
- try {
- if (!detect) {
- log("[警告] 点击目标为空");
- return false;
- }
-
- var rect = detect.getRect();
- var centerX = rect.getCenterX();
- var centerY = rect.getCenterY();
-
- if (clickType === "center") {
- log("[点击] 点击文本中心:(" + centerX + ", " + centerY + ")");
- this.clickAbsolute(centerX, centerY);
- } else {
- log("[点击] 随机点击文本区域");
- detect.clickRandom();
- }
-
- log("[点击] 点击成功");
- return true;
- } catch (e) {
- log("[错误] 点击失败:" + e);
- return false;
- }
- },
-
- /**
- * 双击操作
- * @param {number} xPercent - X 轴百分比
- * @param {number} yPercent - Y 轴百分比
- */
- doubleClick: function(xPercent, yPercent) {
- try {
- log("[双击] 百分比坐标:(" + xPercent + ", " + yPercent + ")");
- hid.doubleClickPercent(xPercent, yPercent);
- sleep(AppConfig.clickDelay * 2);
- log("[双击] 双击成功");
- } catch (e) {
- log("[错误] 双击失败:" + e);
- }
- }
- };
- /**
- * OCR 文本查找管理器
- */
- var OcrSearchManager = {
- /**
- * 查找精确文本
- * @param {OcrResult} ocrResult - OCR 结果
- * @param {string} text - 要查找的文本
- * @param {Array} region - 查找区域
- * @returns {Detect} 检测结果
- */
- findExactText: function(ocrResult, text, region) {
- try {
- log("[查找] 精确查找文本:\"" + text + "\"");
- var result = ocrResult.findText(text, region || AppConfig.ocrRegion);
- if (result) {
- log("[查找] 找到文本");
- } else {
- log("[查找] 未找到文本");
- }
- return result;
- } catch (e) {
- log("[错误] 查找失败:" + e);
- return null;
- }
- },
-
- /**
- * 查找包含文本
- * @param {OcrResult} ocrResult - OCR 结果
- * @param {string} text - 要查找的文本
- * @param {Array} region - 查找区域
- * @returns {Detect} 检测结果
- */
- findIncludeText: function(ocrResult, text, region) {
- try {
- log("[查找] 查找包含文本:\"" + text + "\"");
- var result = ocrResult.findIncludeText(text, region || AppConfig.ocrRegion);
- if (result) {
- log("[查找] 找到文本");
- } else {
- log("[查找] 未找到文本");
- }
- return result;
- } catch (e) {
- log("[错误] 查找失败:" + e);
- return null;
- }
- },
-
- /**
- * 使用正则表达式查找
- * @param {OcrResult} ocrResult - OCR 结果
- * @param {string} regex - 正则表达式
- * @param {Array} region - 查找区域
- * @returns {Array} 检测结果数组
- */
- findTextWithRegex: function(ocrResult, regex, region) {
- try {
- log("[查找] 使用正则查找:" + regex);
- var results = ocrResult.findTextWithRegex(regex, region || AppConfig.ocrRegion);
- if (results && results.length > 0) {
- log("[查找] 找到 " + results.length + " 个匹配项");
- } else {
- log("[查找] 未找到匹配项");
- }
- return results;
- } catch (e) {
- log("[错误] 查找失败:" + e);
- return null;
- }
- },
-
- /**
- * 获取所有检测结果
- * @param {OcrResult} ocrResult - OCR 结果
- * @returns {Array} 所有检测结果
- */
- getAllDetects: function(ocrResult) {
- try {
- log("[查找] 获取所有检测结果");
- var results = ocrResult.getAllDetect();
- if (results) {
- log("[查找] 共找到 " + results.length + " 个文本块");
- }
- return results;
- } catch (e) {
- log("[错误] 获取失败:" + e);
- return null;
- }
- }
- };
- // ==================== 业务功能 ====================
- /**
- * 应用启动器 - 通过 OCR 识别并点击应用图标
- */
- var AppLauncher = {
- /**
- * 启动应用
- * @param {string} appName - 应用名称
- * @param {number} maxRetries - 最大重试次数
- * @returns {boolean} 是否成功
- */
- launchApp: function(appName, maxRetries) {
- separator();
- log("[启动器] 开始启动应用:" + appName);
-
- var retries = 0;
- var actualMaxRetries = maxRetries || AppConfig.retryTimes;
-
- while (retries < actualMaxRetries) {
- try {
- retries++;
- log("[启动器] 第 " + retries + " 次尝试...");
-
- // 1. 截图
- var image = ScreenManager.captureFull();
- if (!image) {
- continue;
- }
-
- // 2. OCR 识别
- var ocrResult = ScreenManager.recognizeText(image, AppConfig.ocrRegion);
- if (!ocrResult) {
- image.close();
- continue;
- }
-
- // 3. 查找应用名称
- var appDetect = OcrSearchManager.findIncludeText(ocrResult, appName, AppConfig.ocrRegion);
-
- if (appDetect) {
- log("[启动器] ✓ 找到应用图标");
-
- // 4. 点击应用
- var success = ClickManager.clickOcrTarget(appDetect, "center");
-
- // 5. 释放资源
- image.close();
-
- if (success) {
- log("[启动器] ✓✓ 应用启动成功!");
- separator();
- return true;
- }
- } else {
- log("[启动器] 未找到应用:" + appName);
- image.close();
- }
-
- // 等待后重试
- if (retries < actualMaxRetries) {
- log("[启动器] 准备重试...");
- sleep(1000);
- }
-
- } catch (e) {
- log("[错误] 启动应用失败:" + e);
- }
- }
-
- log("[启动器] ✗✗ 应用启动失败 (已重试 " + actualMaxRetries + " 次)");
- separator();
- return false;
- },
-
- /**
- * 批量启动应用
- * @param {Array} appList - 应用名称列表
- */
- launchMultipleApps: function(appList) {
- separator();
- log("[启动器] 开始批量启动应用");
-
- var successCount = 0;
-
- for (var i = 0; i < appList.length; i++) {
- log("[启动器] 正在启动 (" + (i + 1) + "/" + appList.length + "): " + appList[i]);
-
- if (this.launchApp(appList[i], 2)) {
- successCount++;
- sleep(2000); // 应用间切换等待
- } else {
- log("[启动器] 跳过失败应用,继续下一个");
- sleep(500);
- }
- }
-
- log("[启动器] 批量启动完成:成功 " + successCount + "/" + appList.length + " 个");
- separator();
- },
-
- /**
- * 显示屏幕所有文本 (调试用)
- */
- showAllScreenText: function() {
- separator();
- log("[调试] 开始识别屏幕所有文本");
-
- var image = ScreenManager.captureFull();
- if (!image) {
- return;
- }
-
- var ocrResult = ScreenManager.recognizeText(image, [0, 0, 1, 1]);
- if (!ocrResult) {
- image.close();
- return;
- }
-
- var allText = ocrResult.getAllString();
- log("[调试] 屏幕文本内容:\n" + allText);
-
- var allDetects = OcrSearchManager.getAllDetects(ocrResult);
- if (allDetects) {
- log("[调试] 文本块数量:" + allDetects.length);
- for (var i = 0; i < allDetects.length; i++) {
- var detect = allDetects[i];
- log("[调试] [" + (i + 1) + "] " + detect.text);
- }
- }
-
- image.close();
- separator();
- }
- };
- // ==================== UI 界面 ====================
- /**
- * 创建主控制面板
- */
- function createControlPanel() {
- var mainTab = new TabView();
- mainTab.setTitles(["应用启动", "快捷操作", "系统设置"]);
-
- mainTab.show(() => {
- log("[UI] 控制面板已启动");
-
- // 在每个页面顶部添加导航栏
- mainTab.addView(0, createPageWithHeader(createAppLaunchView(mainTab), mainTab));
- mainTab.addView(1, createPageWithHeader(createQuickActionsView(mainTab), mainTab));
- mainTab.addView(2, createPageWithHeader(createSettingsView(mainTab), mainTab));
-
- log("[UI] 所有页面加载完成");
- });
- }
- /**
- * 为页面添加导航栏
- * @param {Vertical} contentView - 内容视图
- * @param {TabView} tabView - TabView 实例
- * @returns {Vertical} 带导航栏的完整页面
- */
- function createPageWithHeader(contentView, tabView) {
- var pageContainer = new Vertical();
-
- // 添加导航栏
- var header = createHeader(tabView);
- pageContainer.addView(header);
-
- // 添加内容区域
- pageContainer.addView(contentView);
-
- return pageContainer;
- }
- /**
- * 创建上标头(带返回按钮和返回桌面按钮)
- * @param {TabView} tabView - TabView 实例
- * @returns {Vertical} 标头视图
- */
- function createHeader(tabView) {
- var header = new Vertical();
- header.setBackgroundColor(41, 128, 185);
-
- // 第一行:返回按钮 + 标题 + 桌面按钮
- var titleBar = new Horizontal();
-
- // 返回按钮
- var backBtn = new Button();
- backBtn.setText("← 返回");
- backBtn.setColor(255, 255, 255);
- backBtn.setTextColor(41, 128, 185);
- backBtn.setWidth(80);
- backBtn.setHeight(40);
- backBtn.onClick(() => {
- log("[导航] 返回上一页");
- try {
- hid.back();
- } catch (e) {
- try {
- hid.home();
- log("[导航] ✓ 已返回主页");
- } catch (e2) {
- log("[警告] 返回失败:" + e2);
- }
- }
- });
- titleBar.addView(backBtn);
-
- // 弹性占位(让标题居中)
- var flexSpace1 = new Label();
- flexSpace1.setWidth(-1);
- titleBar.addView(flexSpace1);
-
- // 应用标题
- var titleLabel = new Label();
- titleLabel.setText("🚀 " + AppConfig.appName);
- titleLabel.setTextColor(255, 255, 255);
- titleLabel.setFontSize(16);
- titleBar.addView(titleLabel);
-
- // 弹性占位
- var flexSpace2 = new Label();
- flexSpace2.setWidth(-1);
- titleBar.addView(flexSpace2);
-
- // 返回桌面按钮
- var homeBtn = new Button();
- homeBtn.setText("🏠 桌面");
- homeBtn.setColor(46, 204, 113);
- homeBtn.setTextColor(255, 255, 255);
- homeBtn.setWidth(90);
- homeBtn.setHeight(40);
- homeBtn.onClick(() => {
- log("[导航] 返回桌面");
- try {
- hid.home();
- log("[导航] ✓ 已返回桌面");
- } catch (e) {
- log("[错误] 返回桌面失败:" + e);
- }
- });
- titleBar.addView(homeBtn);
-
- header.addView(titleBar);
-
- return header;
- }
- /**
- * 应用启动页面
- * @param {TabView} mainTab - TabView 实例
- * @returns {Vertical} 页面视图
- */
- function createAppLaunchView(mainTab) {
- var v = new Vertical();
- v.setBackgroundColor(245, 247, 250);
-
- // 标题
- var header = new Horizontal();
- header.setAlignment("center");
- var title = new Label();
- title.setText("🚀 应用启动器");
- title.setTextColor(41, 128, 185);
- title.setFontSize(24);
- header.addView(title);
- v.addView(header);
-
- var divider = new Label();
- divider.setHeight(2);
- divider.setBackgroundColor(200, 200, 200);
- v.addView(divider);
-
- // 常用应用按钮
- var appContainer = new Vertical();
- appContainer.setBackgroundColor(255, 255, 255);
-
- var apps = [
- { name: "微信", color: [46, 204, 113] },
- { name: "QQ", color: [52, 152, 219] },
- { name: "支付宝", color: [52, 73, 94] },
- { name: "抖音", color: [231, 76, 60] },
- { name: "快手", color: [241, 196, 15] },
- { name: "微博", color: [230, 0, 18] }
- ];
-
- for (var i = 0; i < apps.length; i++) {
- var appBtn = new Button();
- appBtn.setText("启动 " + apps[i].name);
- appBtn.setColor(apps[i].color[0], apps[i].color[1], apps[i].color[2]);
- appBtn.setTextColor(255, 255, 255);
- appBtn.setHeight(45);
- (function(appName) {
- appBtn.onClick(() => {
- log("[UI] 点击启动:" + appName);
- AppLauncher.launchApp(appName, 3);
- });
- })(apps[i].name);
- appContainer.addView(appBtn);
- }
-
- v.addView(appContainer);
-
- // 自定义输入
- var inputContainer = new Horizontal();
- inputContainer.setAlignment("center_vertical");
-
- var inputLabel = new Label();
- inputLabel.setText("应用名称:");
- inputLabel.setTextColor(50, 50, 50);
- inputLabel.setWidth(100);
- inputContainer.addView(inputLabel);
-
- var appInput = new Input();
- appInput.setWidth(200);
- inputContainer.addView(appInput);
-
- v.addView(inputContainer);
-
- var customLaunchBtn = new Button();
- customLaunchBtn.setText("启动自定义应用");
- customLaunchBtn.setColor(155, 89, 182);
- customLaunchBtn.setTextColor(255, 255, 255);
- customLaunchBtn.setHeight(45);
- customLaunchBtn.onClick(() => {
- var appName = appInput.getText();
- if (appName) {
- log("[UI] 启动自定义应用:" + appName);
- AppLauncher.launchApp(appName, 3);
- appInput.setText("");
- } else {
- log("[UI] 请输入应用名称");
- }
- });
- v.addView(customLaunchBtn);
-
- // 批量启动
- var batchBtn = new Button();
- batchBtn.setText("批量启动 (微信+QQ+支付宝)");
- batchBtn.setColor(52, 152, 219);
- batchBtn.setTextColor(255, 255, 255);
- batchBtn.setHeight(45);
- batchBtn.onClick(() => {
- AppLauncher.launchMultipleApps(["微信", "QQ", "支付宝"]);
- });
- v.addView(batchBtn);
-
- // 关闭按钮
- var closeBtn = new Button();
- closeBtn.setText("❌ 关闭面板");
- closeBtn.setColor(149, 165, 166);
- closeBtn.setTextColor(255, 255, 255);
- closeBtn.setHeight(40);
- closeBtn.onClick(() => {
- log("[UI] 关闭控制面板");
- if (mainTab) {
- mainTab.dismiss();
- }
- });
- v.addView(closeBtn);
-
- return v;
- }
- /**
- * 快捷操作页面
- * @param {TabView} mainTab - TabView 实例
- * @returns {Vertical} 页面视图
- */
- function createQuickActionsView(mainTab) {
- var v = new Vertical();
- v.setBackgroundColor(245, 247, 250);
-
- // 标题
- var header = new Horizontal();
- header.setAlignment("center");
- var title = new Label();
- title.setText("⚡ 快捷操作");
- title.setTextColor(41, 128, 185);
- title.setFontSize(24);
- header.addView(title);
- v.addView(header);
-
- var divider = new Label();
- divider.setHeight(2);
- divider.setBackgroundColor(200, 200, 200);
- v.addView(divider);
-
- // 快捷按钮组
- var quickContainer = new Vertical();
- quickContainer.setBackgroundColor(255, 255, 255);
-
- // 屏幕中心点击
- var centerClickBtn = new Button();
- centerClickBtn.setText("点击屏幕中心");
- centerClickBtn.setColor(46, 204, 113);
- centerClickBtn.setTextColor(255, 255, 255);
- centerClickBtn.setHeight(45);
- centerClickBtn.onClick(() => {
- log("[快捷] 点击屏幕中心");
- ClickManager.clickPercent(0.5, 0.5);
- });
- quickContainer.addView(centerClickBtn);
-
- // 双击屏幕中心
- var doubleClickBtn = new Button();
- doubleClickBtn.setText("双击屏幕中心");
- doubleClickBtn.setColor(241, 196, 15);
- doubleClickBtn.setTextColor(50, 50, 50);
- doubleClickBtn.setHeight(45);
- doubleClickBtn.onClick(() => {
- log("[快捷] 双击屏幕中心");
- ClickManager.doubleClick(0.5, 0.5);
- });
- quickContainer.addView(doubleClickBtn);
-
- // 显示屏幕文本
- var showTextBtn = new Button();
- showTextBtn.setText("显示屏幕所有文本");
- showTextBtn.setColor(52, 152, 219);
- showTextBtn.setTextColor(255, 255, 255);
- showTextBtn.setHeight(45);
- showTextBtn.onClick(() => {
- AppLauncher.showAllScreenText();
- });
- quickContainer.addView(showTextBtn);
-
- // 刷新 OCR
- var refreshOcrBtn = new Button();
- refreshOcrBtn.setText("刷新 OCR 缓存");
- refreshOcrBtn.setColor(155, 89, 182);
- refreshOcrBtn.setTextColor(255, 255, 255);
- refreshOcrBtn.setHeight(45);
- refreshOcrBtn.onClick(() => {
- log("[快捷] 刷新 OCR 缓存");
- ScreenManager.lockCache();
- sleep(500);
- ScreenManager.unlockCache();
- log("[快捷] 刷新完成");
- });
- quickContainer.addView(refreshOcrBtn);
-
- v.addView(quickContainer);
-
- return v;
- }
- /**
- * 系统设置页面
- * @param {TabView} mainTab - TabView 实例
- * @returns {Vertical} 页面视图
- */
- function createSettingsView(mainTab) {
- var v = new Vertical();
- v.setBackgroundColor(245, 247, 250);
-
- // 标题
- var header = new Horizontal();
- header.setAlignment("center");
- var title = new Label();
- title.setText("⚙️ 系统设置");
- title.setTextColor(41, 128, 185);
- title.setFontSize(24);
- header.addView(title);
- v.addView(header);
-
- var divider = new Label();
- divider.setHeight(2);
- divider.setBackgroundColor(200, 200, 200);
- v.addView(divider);
-
- // 设置容器
- var settingsContainer = new Vertical();
- settingsContainer.setBackgroundColor(255, 255, 255);
-
- // 日志开关
- var logCheck = new CheckBox();
- logCheck.setText("启用日志记录");
- logCheck.setID("日志开关");
- logCheck.setDefultSelect(); // 默认选中
- logCheck.onClick(() => {
- AppConfig.logEnabled = logCheck.isSelect();
- log("[设置] 日志记录:" + (AppConfig.logEnabled ? "已开启" : "已关闭"));
- });
- settingsContainer.addView(logCheck);
-
- // 点击延迟设置
- var delayContainer = new Horizontal();
- delayContainer.setAlignment("center_vertical");
-
- var delayLabel = new Label();
- delayLabel.setText("点击延迟:");
- delayLabel.setTextColor(50, 50, 50);
- delayLabel.setWidth(100);
- delayContainer.addView(delayLabel);
-
- var delayInput = new Input();
- delayInput.setWidth(100);
- delayInput.setText(String(AppConfig.clickDelay));
- delayContainer.addView(delayInput);
-
- var delayUnit = new Label();
- delayUnit.setText(" ms");
- delayUnit.setTextColor(100, 100, 100);
- delayContainer.addView(delayUnit);
-
- settingsContainer.addView(delayContainer);
-
- var saveDelayBtn = new Button();
- saveDelayBtn.setText("保存延迟设置");
- saveDelayBtn.setColor(52, 152, 219);
- saveDelayBtn.setTextColor(255, 255, 255);
- saveDelayBtn.setHeight(40);
- saveDelayBtn.onClick(() => {
- var delayText = delayInput.getText();
- var delay = parseInt(delayText);
- if (delay > 0) {
- AppConfig.clickDelay = delay;
- log("[设置] 点击延迟已保存:" + delay + "ms");
- } else {
- log("[设置] 请输入有效的延迟值");
- }
- });
- settingsContainer.addView(saveDelayBtn);
-
- // 重试次数设置
- var retryContainer = new Horizontal();
- retryContainer.setAlignment("center_vertical");
-
- var retryLabel = new Label();
- retryLabel.setText("重试次数:");
- retryLabel.setTextColor(50, 50, 50);
- retryLabel.setWidth(100);
- retryContainer.addView(retryLabel);
-
- var retryInput = new Input();
- retryInput.setWidth(100);
- retryInput.setText(String(AppConfig.retryTimes));
- retryContainer.addView(retryInput);
-
- settingsContainer.addView(retryContainer);
-
- var saveRetryBtn = new Button();
- saveRetryBtn.setText("保存重试次数");
- saveRetryBtn.setColor(46, 204, 113);
- saveRetryBtn.setTextColor(255, 255, 255);
- saveRetryBtn.setHeight(40);
- saveRetryBtn.onClick(() => {
- var retryText = retryInput.getText();
- var retry = parseInt(retryText);
- if (retry > 0) {
- AppConfig.retryTimes = retry;
- log("[设置] 重试次数已保存:" + retry);
- } else {
- log("[设置] 请输入有效的重试次数");
- }
- });
- settingsContainer.addView(saveRetryBtn);
-
- v.addView(settingsContainer);
-
- // 关于信息
- var aboutDivider = new Label();
- aboutDivider.setHeight(1);
- aboutDivider.setBackgroundColor(180, 180, 180);
- v.addView(aboutDivider);
-
- var aboutLabel = new Label();
- aboutLabel.setText("\n" + AppConfig.appName + " v" + AppConfig.version + "\nQQ 群:711841924\n基于 AIWROK 开发平台");
- aboutLabel.setTextColor(100, 100, 100);
- aboutLabel.setFontSize(14);
- v.addView(aboutLabel);
-
- return v;
- }
- // ==================== 主程序入口 ====================
- /**
- * 启动演示模式 - 展示所有功能
- */
- function runDemo() {
- log("========================================");
- log("🍎 智能屏幕自动化助手 Pro v" + AppConfig.version);
- log("========================================");
- log("[演示] 开始功能演示...");
-
- // 1. 显示屏幕信息
- var screenSize = ScreenManager.getScreenSize();
- log("[演示] 屏幕分辨率:" + screenSize.width + "x" + screenSize.height);
-
- // 2. 截图测试
- log("[演示] 执行截图测试...");
- var testImage = ScreenManager.captureFull();
- if (testImage) {
- log("[演示] ✓ 截图成功");
- testImage.close();
- }
-
- // 3. 快捷操作演示
- log("[演示] 点击屏幕中心...");
- ClickManager.clickPercent(0.5, 0.5);
-
- sleep(1000);
-
- log("[演示] 双击屏幕中心...");
- ClickManager.doubleClick(0.5, 0.5);
-
- separator();
- log("[演示] 功能演示完成!");
- log("[提示] 请打开控制面板进行更多操作");
- separator();
- }
- /**
- * 主函数 - 启动应用
- */
- function main() {
- try {
- // 运行演示
- runDemo();
-
- // 启动控制面板
- log("[系统] 正在启动控制面板...");
- createControlPanel();
-
- log("[系统] ✓ 系统启动成功");
-
- } catch (e) {
- log("[致命错误] 系统启动失败:" + e);
- }
- }
- // ==================== 执行主程序 ====================
- main();
复制代码
|
| |  | |  |
|