|
|
Æ»¹û½Å±¾ÆÁÄ»Àà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();
¸´ÖÆ´úÂë
|
|