B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 4|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

Æ»¹û½Å±¾ÆÁĻʼþEVENTʾÀý

[¸´ÖÆÁ´½Ó]

1065

Ö÷Ìâ

1070

Ìû×Ó

7537

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7537
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
Æ»¹û½Å±¾ÆÁĻʼþEVENTʾÀý


Æ»¹û½Å±¾ÆÁĻʼþEVENTʾÀý B2BÍøÂçÈí¼þ

Æ»¹û½Å±¾ÆÁĻʼþEVENTʾÀý B2BÍøÂçÈí¼þ

Æ»¹û½Å±¾ÆÁĻʼþEVENTʾÀý B2BÍøÂçÈí¼þ

  1. /**
  2. * ============================================
  3. * AIWROK ÆÁÄ»×Ô¶¯»¯ÊµÕ½°¸Àý½Ìѧ
  4. * °æ±¾£º1.0.0
  5. * ƽ̨£ºiOS (AIWROK)
  6. * QQ Ⱥ£º711841924 Ⱥһ£¬Æ»¹ûÄÚ²âȺ 528816639
  7. * ============================================
  8. *
  9. * ½ÌѧĿ±ê:
  10. * 1. 📖 ÕÆÎÕ OCR Îı¾Ê¶±ðÓëµã»÷
  11. * 2. 🎯 ѧ»áÕÒͼ¶¨Î»Óë½»»¥
  12. * 3. 🖱️ Àí½â¶àÖÖµã»÷·½Ê½µÄÓ¦Óó¡¾°
  13. * 4. ⚙️ ¹¹½¨ÍêÕûµÄ×Ô¶¯»¯Á÷³Ì
  14. * 5. 🛡️ ´íÎó´¦ÀíÓëÎȶ¨ÐÔÓÅ»¯
  15. */

  16. // ==================== µÚÒ»²¿·Ö£º»ù´¡×¼±¸ ====================

  17. /**
  18. * ¹¤¾ßº¯Êý¶¨Òå
  19. */
  20. function sleep(ms) {
  21.     var start = Date.now();
  22.     while (Date.now() - start < ms) {
  23.         // ×èÈûµÈ´ý
  24.     }
  25. }

  26. function printl(msg) {
  27.     console.log(msg);
  28. }

  29. /**
  30. * È«¾ÖÅäÖöÔÏó
  31. */
  32. var Config = {
  33.     appName: "ÆÁÄ»×Ô¶¯»¯ÊµÕ½½Ìѧ",
  34.     version: "1.0.0",
  35.     debugMode: true,
  36.     defaultRegion: [0, 0, 1, 1], // ĬÈÏÈ«ÆÁ
  37.     clickDelay: 500, // µã»÷ÑÓ³Ù (ms)
  38.     retryTimes: 3, // ĬÈÏÖØÊÔ´ÎÊý
  39.     ocrLockEnabled: false // OCR Ëø¶¨¿ª¹Ø
  40. };

  41. // ==================== µÚ¶þ²¿·Ö£ººËÐļ¼ÄÜÄ£¿é ====================

  42. /**
  43. * Ä£¿é 1: OCR Îı¾Ê¶±ð»ù´¡
  44. */
  45. var OCRModule = {
  46.     /**
  47.      * ÈÎÎñ 1.1: »ñÈ¡ÆÁÄ»ËùÓÐÎı¾
  48.      */
  49.     getAllText: function() {
  50.         printl("\n¡¾ÈÎÎñ 1.1¡¿»ñÈ¡ÆÁÄ»ËùÓÐÎı¾");
  51.         try {
  52.             // ·½Ê½ 1: ʹÓà screen.ocr() (¿ì½Ý·½Ê½)
  53.             var ocrResult = screen.ocr(0, 0, 1, 1);
  54.             var allText = ocrResult.getAllString();
  55.             printl("ʶ±ðµ½µÄÎı¾ÄÚÈÝ:\n" + allText);
  56.             printl("Îı¾³¤¶È£º" + allText.length);
  57.             return allText;
  58.         } catch (e) {
  59.             printl("´íÎó£º" + e);
  60.             return "";
  61.         }
  62.     },
  63.    
  64.     /**
  65.      * ÈÎÎñ 1.2: ²éÕÒÌØ¶¨Îı¾£¨Ê¹Óà findIncludeText£©
  66.      */
  67.     findText: function(targetText) {
  68.         printl("\n¡¾ÈÎÎñ 1.2¡¿²éÕÒÌØ¶¨Îı¾£º" + targetText);
  69.         try {
  70.             var ocrResult = screen.ocr(0, 0, 1, 1);
  71.             // ʹÓà findIncludeText ´úÌæ findText
  72.             var detect = ocrResult.findIncludeText(targetText, Config.defaultRegion);
  73.             
  74.             if (detect != null) {
  75.                 printl("✓ ÕÒµ½Ä¿±ê¶ÔÏó");
  76.                 // ʹÓà getRect() »ñȡλÖÃ
  77.                 var rect = detect.getRect();
  78.                 printl("λÖÃÐÅÏ¢£º×ó=" + rect.getLeft() + ", ÉÏ=" + rect.getTop());
  79.                 printl("³ß´çÐÅÏ¢£º¿í=" + rect.getWidth() + ", ¸ß=" + rect.getHeight());
  80.                 printl("ÖÐÐĵ㣺(" + rect.getCenterX() + ", " + rect.getCenterY() + ")");
  81.                 return detect;
  82.             } else {
  83.                 printl("✗ δÕÒµ½Îı¾£º" + targetText);
  84.                 return null;
  85.             }
  86.         } catch (e) {
  87.             printl("´íÎó£º" + e);
  88.             return null;
  89.         }
  90.     },
  91.    
  92.     /**
  93.      * ÈÎÎñ 1.3: ²éÕÒ°üº¬Ìض¨Îı¾µÄ¶à¸öÄ¿±ê
  94.      */
  95.     findIncludeTexts: function(keyword) {
  96.         printl("\n¡¾ÈÎÎñ 1.3¡¿²éÕÒ°üº¬¹Ø¼ü´ÊµÄËùÓÐÄ¿±ê£º" + keyword);
  97.         try {
  98.             var ocrResult = screen.ocr(0, 0, 1, 1);
  99.             var targets = ocrResult.findIncludeTexts(keyword, Config.defaultRegion);
  100.             
  101.             if (targets && targets.length > 0) {
  102.                 printl("ÕÒµ½ " + targets.length + " ¸ö°üº¬ '" + keyword + "' µÄÄ¿±ê¶ÔÏó");
  103.                 for (var i = 0; i < Math.min(5, targets.length); i++) {
  104.                     var rect = targets[i].getRect();
  105.                     printl("  [" + (i+1) + "] λÖãº(" + rect.getCenterX().toFixed(3) + ", " + rect.getCenterY().toFixed(3) + ")");
  106.                 }
  107.                 return targets;
  108.             } else {
  109.                 printl("δÕÒµ½°üº¬ '" + keyword + "' µÄÄ¿±ê");
  110.                 return [];
  111.             }
  112.         } catch (e) {
  113.             printl("´íÎó£º" + e);
  114.             return [];
  115.         }
  116.     },
  117.    
  118.     /**
  119.      * ÈÎÎñ 1.4: ʹÓÃÕýÔò±í´ïʽ²éÕÒ
  120.      */
  121.     findWithRegex: function(regex) {
  122.         printl("\n¡¾ÈÎÎñ 1.4¡¿Ê¹ÓÃÕýÔò±í´ïʽ²éÕÒ£º" + regex);
  123.         try {
  124.             var ocrResult = screen.ocr(0, 0, 1, 1);
  125.             var targets = ocrResult.findTextWithRegex(regex, Config.defaultRegion);
  126.             
  127.             if (targets && targets.length > 0) {
  128.                 printl("✓ ÕÒµ½ " + targets.length + " ¸öÆ¥ÅäÏî");
  129.                 for (var i = 0; i < Math.min(3, targets.length); i++) {
  130.                     var rect = targets[i].getRect();
  131.                     printl("  [" + (i+1) + "] λÖãº(" + rect.getCenterX().toFixed(3) + ", " + rect.getCenterY().toFixed(3) + ")");
  132.                 }
  133.                 return targets;
  134.             } else {
  135.                 printl("✗ δÕÒµ½Æ¥ÅäÏî");
  136.                 return [];
  137.             }
  138.         } catch (e) {
  139.             printl("´íÎó£º" + e);
  140.             return [];
  141.         }
  142.     }
  143. };

  144. /**
  145. * Ä£¿é 2: µã»÷²Ù×÷ºËÐÄ
  146. */
  147. var ClickModule = {
  148.     /**
  149.      * ÈÎÎñ 2.1: ¾ø¶Ô×ø±êµã»÷
  150.      */
  151.     clickAbsolute: function(x, y) {
  152.         printl("\n¡¾ÈÎÎñ 2.1¡¿¾ø¶Ô×ø±êµã»÷£º(" + x + ", " + y + ")");
  153.         try {
  154.             hid.click(x, y);
  155.             sleep(Config.clickDelay);
  156.             printl("✓ µã»÷³É¹¦");
  157.         } catch (e) {
  158.             printl("´íÎó£º" + e);
  159.         }
  160.     },
  161.    
  162.     /**
  163.      * ÈÎÎñ 2.2: °Ù·Ö±È×ø±êµã»÷
  164.      */
  165.     clickPercent: function(xPercent, yPercent) {
  166.         printl("\n¡¾ÈÎÎñ 2.2¡¿°Ù·Ö±È×ø±êµã»÷£º(" + xPercent + ", " + yPercent + ")");
  167.         try {
  168.             hid.clickPercent(xPercent, yPercent);
  169.             sleep(Config.clickDelay);
  170.             printl("✓ µã»÷³É¹¦");
  171.         } catch (e) {
  172.             printl("´íÎó£º" + e);
  173.         }
  174.     },
  175.    
  176.     /**
  177.      * ÈÎÎñ 2.3: Ë«»÷²Ù×÷
  178.      */
  179.     doubleClick: function(x, y) {
  180.         printl("\n¡¾ÈÎÎñ 2.3¡¿Ë«»÷²Ù×÷£º(" + x + ", " + y + ")");
  181.         try {
  182.             hid.doubleClick(x, y);
  183.             sleep(Config.clickDelay * 2);
  184.             printl("✓ Ë«»÷³É¹¦");
  185.         } catch (e) {
  186.             printl("´íÎó£º" + e);
  187.         }
  188.     },
  189.    
  190.     /**
  191.      * ÈÎÎñ 2.4: µã»÷ OCR ʶ±ðÄ¿±ê
  192.      */
  193.     clickOcrTarget: function(detect, clickType) {
  194.         printl("\n¡¾ÈÎÎñ 2.4¡¿µã»÷ OCR ʶ±ðÄ¿±ê");
  195.         if (!detect) {
  196.             printl("✗ Ä¿±êΪ¿Õ»òÎÞЧ£¬ÎÞ·¨µã»÷");
  197.             return false;
  198.         }
  199.         
  200.         try {
  201.             if (clickType === "center") {
  202.                 // ʹÓà getRect() »ñÈ¡ÖÐÐĵã
  203.                 var rect = detect.getRect();
  204.                 var centerX = rect.getCenterX();
  205.                 var centerY = rect.getCenterY();
  206.                 printl("µã»÷ÖÐÐĵ㣺(" + centerX + ", " + centerY + ")");
  207.                 hid.click(centerX, centerY);
  208.             } else {
  209.                 printl("Ëæ»úµã»÷Îı¾ÇøÓò");
  210.                 detect.clickRandom();
  211.             }
  212.             
  213.             sleep(Config.clickDelay);
  214.             printl("✓ µã»÷³É¹¦");
  215.             return true;
  216.         } catch (e) {
  217.             printl("´íÎó£º" + e);
  218.             return false;
  219.         }
  220.     },
  221.    
  222.     /**
  223.      * ÈÎÎñ 2.5: ÅúÁ¿µã»÷
  224.      */
  225.     clickMultipleTargets: function(detects) {
  226.         printl("\n¡¾ÈÎÎñ 2.5¡¿ÅúÁ¿µã»÷¶à¸öÄ¿±ê");
  227.         if (!detects || detects.length === 0) {
  228.             printl("✗ ûÓпɵã»÷µÄÄ¿±ê");
  229.             return;
  230.         }
  231.         
  232.         printl("×¼±¸µã»÷ " + detects.length + " ¸öÄ¿±ê");
  233.         for (var i = 0; i < detects.length; i++) {
  234.             printl("µã»÷Ä¿±ê " + (i + 1) + "/" + detects.length);
  235.             detects[i].clickRandom();
  236.             sleep(300);
  237.         }
  238.         printl("✓ ÅúÁ¿µã»÷Íê³É");
  239.     }
  240. };

  241. /**
  242. * Ä£¿é 3: ͼÏñʶ±ð½ø½×
  243. */
  244. var ImageModule = {
  245.     /**
  246.      * ÈÎÎñ 3.1: »ù´¡ÕÒͼ
  247.      */
  248.     findImage: function(cvFile) {
  249.         printl("\n¡¾ÈÎÎñ 3.1¡¿»ù´¡ÕÒͼ£º" + cvFile);
  250.         try {
  251.             var detects = opencv.findImagesEx(cvFile);
  252.             
  253.             if (detects && detects.length > 0) {
  254.                 printl("✓ ÕÒµ½ " + detects.length + " ¸öÄ¿±ê");
  255.                 for (var i = 0; i < Math.min(3, detects.length); i++) {
  256.                     printl("  [" + (i+1) + "] x=" + detects[i].x + ", y=" + detects[i].y);
  257.                 }
  258.                 return detects;
  259.             } else {
  260.                 printl("✗ δÕÒµ½Ä¿±ê");
  261.                 return [];
  262.             }
  263.         } catch (e) {
  264.             printl("´íÎó£º" + e);
  265.             return [];
  266.         }
  267.     },
  268.    
  269.     /**
  270.      * ÈÎÎñ 3.2: ÇøÓòÕÒͼ
  271.      */
  272.     findImageInRegion: function(cvFile, region) {
  273.         printl("\n¡¾ÈÎÎñ 3.2¡¿ÇøÓòÕÒͼ£º" + cvFile);
  274.         printl("ʶ±ðÇøÓò£º[" + region.join(", ") + "]");
  275.         try {
  276.             var detects = opencv.findImages([cvFile], 0.8, 3000, 1, region);
  277.             
  278.             if (detects && detects.length > 0) {
  279.                 printl("✓ ÔÚÇøÓòÄÚÕÒµ½ " + detects.length + " ¸öÄ¿±ê");
  280.                 return detects;
  281.             } else {
  282.                 printl("✗ ÇøÓòÄÚδÕÒµ½Ä¿±ê");
  283.                 return [];
  284.             }
  285.         } catch (e) {
  286.             printl("´íÎó£º" + e);
  287.             return [];
  288.         }
  289.     }
  290. };

  291. // ==================== µÚÈý²¿·Ö£º×ÛºÏʵս°¸Àý ====================

  292. /**
  293. * ʵս°¸Àý 1: ÖÇÄÜÓ¦ÓÃÆô¶¯Æ÷
  294. */
  295. var AppLauncher = {
  296.     /**
  297.      * Æô¶¯µ¥¸öÓ¦ÓÃ
  298.      */
  299.     launchApp: function(appName) {
  300.         printl("\n========================================");
  301.         printl("&#128640; Æô¶¯Ó¦Óãº" + appName);
  302.         printl("========================================");
  303.         
  304.         for (var retry = 0; retry < Config.retryTimes; retry++) {
  305.             try {
  306.                 printl("µÚ " + (retry + 1) + " ´Î³¢ÊÔ...");
  307.                
  308.                 // 1. OCR ʶ±ð
  309.                 var ocrResult = screen.ocr(0, 0, 1, 1);
  310.                
  311.                 // 2. ²éÕÒÓ¦ÓÃÃû³Æ
  312.                 var appDetect = ocrResult.findIncludeText(appName, Config.defaultRegion);
  313.                
  314.                 if (appDetect && typeof appDetect === 'object' && appDetect.x) {
  315.                     printl("✓ ÕÒµ½Ó¦ÓÃͼ±ê");
  316.                     
  317.                     // 3. µã»÷Ó¦ÓÃ
  318.                     ClickModule.clickOcrTarget(appDetect, "center");
  319.                     
  320.                     printl("✓✓ Ó¦ÓÃÆô¶¯³É¹¦£¡");
  321.                     return true;
  322.                 } else {
  323.                     printl("✗ δÕÒµ½Ó¦Óã¬×¼±¸ÖØÊÔ...");
  324.                     sleep(1000);
  325.                 }
  326.             } catch (e) {
  327.                 printl("´íÎó£º" + e);
  328.                 sleep(1000);
  329.             }
  330.         }
  331.         
  332.         printl("✗✗ Ó¦ÓÃÆô¶¯Ê§°Ü£¨ÒÑÖØÊÔ " + Config.retryTimes + " ´Î£©");
  333.         return false;
  334.     },
  335.    
  336.     /**
  337.      * ÅúÁ¿Æô¶¯Ó¦ÓÃ
  338.      */
  339.     launchMultipleApps: function(appList) {
  340.         printl("\n========================================");
  341.         printl("&#128230; ÅúÁ¿Æô¶¯Ó¦ÓÃ");
  342.         printl("========================================");
  343.         
  344.         var successCount = 0;
  345.         
  346.         for (var i = 0; i < appList.length; i++) {
  347.             printl("\nÕýÔÚÆô¶¯ (" + (i + 1) + "/" + appList.length + "): " + appList[i]);
  348.             
  349.             if (this.launchApp(appList[i])) {
  350.                 successCount++;
  351.                 sleep(2000); // Ó¦ÓÃÇл»µÈ´ý
  352.             }
  353.             
  354.             sleep(500);
  355.         }
  356.         
  357.         printl("\nÅúÁ¿Æô¶¯Íê³É£º³É¹¦ " + successCount + "/" + appList.length + " ¸ö");
  358.     }
  359. };

  360. /**
  361. * ʵս°¸Àý 2: ×Ô¶¯»¯µ¼º½ÏµÍ³
  362. */
  363. var AutoNavigator = {
  364.     /**
  365.      * Ö´Ðжಽµ¼º½
  366.      */
  367.     navigate: function(steps) {
  368.         printl("\n========================================");
  369.         printl("&#129517; ¿ªÊ¼×Ô¶¯»¯µ¼º½");
  370.         printl("========================================");
  371.         
  372.         for (var i = 0; i < steps.length; i++) {
  373.             var step = steps[i];
  374.             printl("\n²½Öè " + (i + 1) + "/" + steps.length + ": " + step.action);
  375.             
  376.             try {
  377.                 if (step.action === "findAndClick") {
  378.                     var ocrResult = screen.ocr(0, 0, 1, 1);
  379.                     var target = ocrResult.findIncludeText(step.target, Config.defaultRegion);
  380.                     
  381.                     if (target && typeof target === 'object' && target.x) {
  382.                         ClickModule.clickOcrTarget(target, step.clickType || "random");
  383.                         printl("✓ ²½ÖèÍê³É");
  384.                         sleep(step.delay || 1000);
  385.                     } else {
  386.                         printl("✗ δÕÒµ½Ä¿±ê£¬µ¼º½ÖжÏ");
  387.                         return false;
  388.                     }
  389.                 } else if (step.action === "waitFor") {
  390.                     printl("µÈ´ý " + step.duration + "ms...");
  391.                     sleep(step.duration);
  392.                 } else if (step.action === "swipe") {
  393.                     this.swipe(step.direction);
  394.                     printl("✓ »¬¶¯Íê³É");
  395.                 }
  396.             } catch (e) {
  397.                 printl("´íÎó£º" + e);
  398.                 return false;
  399.             }
  400.         }
  401.         
  402.         printl("\n✓✓ µ¼º½Íê³É£¡");
  403.         return true;
  404.     },
  405.    
  406.     /**
  407.      * »¬¶¯²Ù×÷
  408.      */
  409.     swipe: function(direction) {
  410.         try {
  411.             if (direction === "up") {
  412.                 hid.swipePercent(0.5, 0.8, 0.5, 0.2);
  413.             } else if (direction === "down") {
  414.                 hid.swipePercent(0.5, 0.2, 0.5, 0.8);
  415.             } else if (direction === "left") {
  416.                 hid.swipePercent(0.8, 0.5, 0.2, 0.5);
  417.             } else if (direction === "right") {
  418.                 hid.swipePercent(0.2, 0.5, 0.8, 0.5);
  419.             }
  420.             sleep(500);
  421.         } catch (e) {
  422.             printl("»¬¶¯´íÎó£º" + e);
  423.         }
  424.     }
  425. };

  426. /**
  427. * ʵս°¸Àý 3: ÖÇÄÜ±íµ¥ÌîдÆ÷
  428. */
  429. var FormFiller = {
  430.     /**
  431.      * ×Ô¶¯Ìîд±íµ¥
  432.      */
  433.     fillForm: function(formData) {
  434.         printl("\n========================================");
  435.         printl("&#128221; ¿ªÊ¼Ìîд±íµ¥");
  436.         printl("========================================");
  437.         
  438.         for (var fieldName in formData) {
  439.             var fieldValue = formData[fieldName];
  440.             printl("\nÌîд×ֶΣº" + fieldName);
  441.             
  442.             try {
  443.                 // 1. ²éÕÒ×ֶαêÇ©
  444.                 var labelDetect = OCRModule.findText(fieldName, Config.defaultRegion);
  445.                            
  446.                 if (labelDetect != null) {
  447.                     // 2. µã»÷ÊäÈë¿ò£¨¼ÙÉèÔÚ±êǩϷ½£©
  448.                     var rect = labelDetect.getRect();
  449.                     var inputX = rect.getCenterX();
  450.                     var inputY = rect.getBottom() + 50;
  451.                                 
  452.                     ClickModule.clickAbsolute(inputX, inputY);
  453.                     sleep(300);
  454.                                 
  455.                     // 3. ÊäÈëÄÚÈÝ£¨ÐèҪʹÓÃÊäÈëÄ£¿é£©
  456.                     printl("ÊäÈëÄÚÈÝ£º" + fieldValue);
  457.                     // ÕâÀï¿ÉÒÔÀ©Õ¹ÊäÈ빦ÄÜ
  458.                                 
  459.                     sleep(500);
  460.                 } else {
  461.                     printl("✗ δÕÒµ½×ֶαêÇ©£º" + fieldName);
  462.                 }
  463.             } catch (e) {
  464.                 printl("´íÎó£º" + e);
  465.             }
  466.         }
  467.         
  468.         printl("\n✓ ±íµ¥ÌîдÍê³É");
  469.     }
  470. };

  471. // ==================== µÚËIJ¿·Ö£º¸ß¼¶¼¼ÇÉÓëÓÅ»¯ ====================

  472. /**
  473. * ¼¼ÇÉ 1: OCR Ëø¶¨ÓÅ»¯
  474. */
  475. function demoOcrLock() {
  476.     printl("\n========================================");
  477.     printl("⚡ ¼¼ÇÉÑÝʾ£ºOCR Ëø¶¨ÓÅ»¯");
  478.     printl("========================================");
  479.    
  480.     try {
  481.         // Ëø¶¨ OCR
  482.         OCR.lockOCR();
  483.         printl("✓ OCR ÒÑËø¶¨");
  484.         
  485.         // ½ØÍ¼
  486.         var image = screen.screenShotFull();
  487.         
  488.         // ¶à´Îʶ±ð£¨Ê¹ÓÃͬһÕŽØÍ¼£©
  489.         printl("\nµÚÒ»´Îʶ±ð...");
  490.         var result1 = image.ocr(0, 0, 1, 1);
  491.         var text1 = result1.getAllString();
  492.         printl("ʶ±ðµ½Îı¾³¤¶È£º" + text1.length);
  493.         
  494.         printl("\nµÚ¶þ´Î²éÕÒ...");
  495.         var target = result1.findIncludeText("ÉèÖÃ", Config.defaultRegion);
  496.         if (target != null) {
  497.             printl("✓ ÕÒµ½Ä¿±ê");
  498.         }
  499.         
  500.         // ÊÍ·Å×ÊÔ´
  501.         image.close();
  502.         
  503.         // ½âËø OCR
  504.         OCR.unLock();
  505.         printl("✓ OCR ÒѽâËø");
  506.         
  507.     } catch (e) {
  508.         printl("´íÎó£º" + e);
  509.         try {
  510.             OCR.unLock();
  511.         } catch (unlockError) {
  512.             // ºöÂÔ½âËø´íÎó
  513.         }
  514.     }
  515. }

  516. /**
  517. * ¼¼ÇÉ 2: °²È«²éÕÒ£¨´øÖØÊÔ»úÖÆ£©
  518. */
  519. function safeFindText(targetText, maxRetries) {
  520.     printl("\n°²È«²éÕÒÎı¾£º" + targetText);
  521.    
  522.     for (var retry = 0; retry < maxRetries; retry++) {
  523.         try {
  524.             printl("µÚ " + (retry + 1) + " ´Î³¢ÊÔ...");
  525.             var ocrResult = screen.ocr(0, 0, 1, 1);
  526.             var detect = ocrResult.findIncludeText(targetText, Config.defaultRegion);
  527.             
  528.             if (detect != null) {
  529.                 printl("✓ ÕÒµ½Ä¿±ê");
  530.                 return detect;
  531.             }
  532.             
  533.             if (retry < maxRetries - 1) {
  534.                 printl("δÕÒµ½£¬µÈ´ýÖØÊÔ...");
  535.                 sleep(1000);
  536.             }
  537.         } catch (e) {
  538.             printl("²éÕÒ³ö´í£º" + e);
  539.             if (retry < maxRetries - 1) {
  540.                 sleep(2000);
  541.             }
  542.         }
  543.     }
  544.    
  545.     printl("✗ δÕÒµ½Ä¿±ê");
  546.     return null;
  547. }

  548. /**
  549. * ¼¼ÇÉ 3: µÈ´ýÄ¿±ê³öÏÖ
  550. */
  551. function waitForTarget(targetText, maxWaitTime) {
  552.     printl("\nµÈ´ýÄ¿±ê³öÏÖ£º" + targetText);
  553.     printl("×î´óµÈ´ýʱ¼ä£º" + maxWaitTime + "ms");
  554.    
  555.     var startTime = Date.now();
  556.    
  557.     while (Date.now() - startTime < maxWaitTime) {
  558.         try {
  559.             var ocrResult = screen.ocr(0, 0, 1, 1);
  560.             var target = ocrResult.findIncludeText(targetText, Config.defaultRegion);
  561.             
  562.             if (target != null) {
  563.                 printl("✓ Ä¿±ê³öÏÖ£¡");
  564.                 return target;
  565.             }
  566.             
  567.             sleep(500);
  568.         } catch (e) {
  569.             printl("²éÕÒ³ö´í£º" + e);
  570.             sleep(500);
  571.         }
  572.     }
  573.    
  574.     printl("✗ ³¬Ê±£¬Ä¿±êδ³öÏÖ");
  575.     return null;
  576. }

  577. // ==================== µÚÎ岿·Ö£ºÍêÕûÑÝʾÁ÷³Ì ====================

  578. /**
  579. * ÑÝʾÁ÷³Ì 1: »ù´¡¼¼ÄÜ×ÛºÏÑÝÁ·
  580. */
  581. function runBasicDemo() {
  582.     printl("\n");
  583.     printl("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  584.     printl("¨U   »ù´¡¼¼ÄÜ×ÛºÏÑÝÁ·                     ¨U");
  585.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  586.    
  587.     // 1. OCR ʶ±ð
  588.     var allText = OCRModule.getAllText();
  589.    
  590.     // 2. ²éÕÒÎı¾£¨Ê¾Àý£º²éÕÒ"ÉèÖÃ"£©
  591.     var settingBtn = OCRModule.findText("ÉèÖÃ");
  592.     if (settingBtn != null) {
  593.         printl("✓ ÕÒµ½ÉèÖð´Å¥£¬×¼±¸µã»÷");
  594.         ClickModule.clickOcrTarget(settingBtn, "center");
  595.     } else {
  596.         printl("✗ δÕÒµ½ÉèÖð´Å¥£¬Ìø¹ýµã»÷");
  597.     }
  598.    
  599.     sleep(1000);
  600.    
  601.     // 3. ²éÕÒ¶à¸öÄ¿±ê£¨Ê¾Àý£º²éÕÒ°üº¬"ÆÁ"µÄÎı¾£©
  602.     var screens = OCRModule.findIncludeTexts("ÆÁ");
  603.     if (screens && screens.length > 0) {
  604.         printl("ÕÒµ½ " + screens.length + " ¸ö°üº¬'ÆÁ'µÄÎı¾£¬ÑÝʾǰ 3 ¸ö");
  605.         ClickModule.clickMultipleTargets(screens.slice(0, Math.min(3, screens.length)));
  606.     }
  607.    
  608.     // 4. ÕýÔò²éÕÒ£¨Ê¾Àý£º²éÕÒÊý×Ö£©
  609.     var numbers = OCRModule.findWithRegex("\\d+");
  610.     if (numbers && numbers.length > 0) {
  611.         printl("\nÕÒµ½ " + numbers.length + " ¸ö°üº¬Êý×ÖµÄÄ¿±ê");
  612.         var rect = numbers[0].getRect();
  613.         printl("µÚÒ»¸öÄ¿±êλÖãº(" + rect.getCenterX().toFixed(3) + ", " + rect.getCenterY().toFixed(3) + ")");
  614.     }
  615. }

  616. /**
  617. * ÑÝʾÁ÷³Ì 2: Ó¦ÓÃÆô¶¯ÊµÕ½
  618. */
  619. function runAppLauncherDemo() {
  620.     printl("\n");
  621.     printl("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  622.     printl("¨U   Ó¦ÓÃÆô¶¯Æ÷ʵս                       ¨U");
  623.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  624.    
  625.     // Æô¶¯µ¥¸öÓ¦ÓÃ
  626.     AppLauncher.launchApp("΢ÐÅ");
  627.    
  628.     sleep(2000);
  629.    
  630.     // ÅúÁ¿Æô¶¯
  631.     AppLauncher.launchMultipleApps(["QQ", "Ö§¸¶±¦"]);
  632. }

  633. /**
  634. * ÑÝʾÁ÷³Ì 3: ×Ô¶¯»¯µ¼º½ÊµÕ½
  635. */
  636. function runNavigatorDemo() {
  637.     printl("\n");
  638.     printl("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  639.     printl("¨U   ×Ô¶¯»¯µ¼º½ÊµÕ½                       ¨U");
  640.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  641.    
  642.     // ¶¨Òåµ¼º½²½Öè
  643.     var steps = [
  644.         { action: "findAndClick", target: "ÉèÖÃ", clickType: "center", delay: 1500 },
  645.         { action: "waitFor", duration: 1000 },
  646.         { action: "findAndClick", target: "ͨÓÃ", clickType: "random", delay: 1500 },
  647.         { action: "swipe", direction: "up" },
  648.         { action: "waitFor", duration: 500 },
  649.         { action: "findAndClick", target: "¹ØÓÚ", clickType: "center" }
  650.     ];
  651.    
  652.     AutoNavigator.navigate(steps);
  653. }

  654. /**
  655. * ÑÝʾÁ÷³Ì 4: ¸ß¼¶¼¼ÇÉÑÝÁ·
  656. */
  657. function runAdvancedDemo() {
  658.     printl("\n");
  659.     printl("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  660.     printl("¨U   ¸ß¼¶¼¼ÇÉÑÝÁ·                         ¨U");
  661.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  662.    
  663.     // 1. OCR Ëø¶¨
  664.     demoOcrLock();
  665.    
  666.     // 2. °²È«²éÕÒ
  667.     safeFindText("È·¶¨", 3);
  668.    
  669.     // 3. µÈ´ýÄ¿±ê
  670.     waitForTarget("È¡Ïû", 5000);
  671. }

  672. // ==================== Ö÷³ÌÐòÈë¿Ú ====================

  673. /**
  674. * ÔËÐÐËùÓÐÑÝʾ
  675. */
  676. function runAllDemos() {
  677.     printl("\n");
  678.     printl("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  679.     printl("¨U  &#127822; AIWROK ÆÁÄ»×Ô¶¯»¯ÊµÕ½°¸Àý½Ìѧ          ¨U");
  680.     printl("¨U  °æ±¾£º" + Config.version + "                              ¨U");
  681.     printl("¨U  QQ Ⱥ£º711841924 | ÄÚ²âȺ£º528816639      ¨U");
  682.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  683.    
  684.     sleep(1000);
  685.    
  686.     // »ù´¡¼¼ÄÜÑÝʾ
  687.     runBasicDemo();
  688.    
  689.     sleep(2000);
  690.    
  691.     // Ó¦ÓÃÆô¶¯Æ÷ÑÝʾ£¨×¢Ê͵ô£¬±ÜÃâʵ¼ÊÖ´ÐУ©
  692.     // runAppLauncherDemo();
  693.    
  694.     sleep(2000);
  695.    
  696.     // µ¼º½ÏµÍ³ÑÝʾ£¨×¢Ê͵ô£¬±ÜÃâʵ¼ÊÖ´ÐУ©
  697.     // runNavigatorDemo();
  698.    
  699.     sleep(2000);
  700.    
  701.     // ¸ß¼¶¼¼ÇÉÑÝʾ
  702.     runAdvancedDemo();
  703.    
  704.     printl("\n");
  705.     printl("¨X¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨[");
  706.     printl("¨U  ✓ ËùÓÐÑÝʾÍê³É£¡                         ¨U");
  707.     printl("¨U  ×£ÄãѧϰÓä¿ì£¡                           ¨U");
  708.     printl("¨^¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨T¨a");
  709. }

  710. /**
  711. * µ¥¶ÀÔËÐÐij¸öÑÝʾ£¨È¡Ïû×¢Êͼ´¿É£©
  712. */
  713. function main() {
  714.     // ÔËÐÐËùÓÐÑÝʾ
  715.     runAllDemos();
  716.    
  717.     // »òÕßµ¥¶ÀÔËÐÐij¸öÑÝʾ£º
  718.     // runBasicDemo();
  719.     // runAppLauncherDemo();
  720.     // runNavigatorDemo();
  721.     // runAdvancedDemo();
  722. }

  723. // Ö´ÐÐÖ÷³ÌÐò
  724. main();
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-3-24 14:11 , Processed in 0.385167 second(s), 36 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí