B2BÍøÂçÈí¼þ

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

ͨÓÃÕÒͼOCRµã×ÖÍêÕû½Å±¾¹Ç¼Ü

[¸´ÖÆÁ´½Ó]

1172

Ö÷Ìâ

1177

Ìû×Ó

7965

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7965
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷

ͨÓÃÕÒͼOCRµã×ÖÍêÕû½Å±¾¹Ç¼Ü


ͨÓÃÕÒͼOCRµã×ÖÍêÕû½Å±¾¹Ç¼Ü B2BÍøÂçÈí¼þ

ͨÓÃÕÒͼOCRµã×ÖÍêÕû½Å±¾¹Ç¼Ü B2BÍøÂçÈí¼þ

ͨÓÃÕÒͼOCRµã×ÖÍêÕû½Å±¾¹Ç¼Ü B2BÍøÂçÈí¼þ



  1. // ============================================================================
  2. //  AIWROK ͨÓá¸ÕÒͼ + OCR µã×Ö¡¹ÍêÕû½Å±¾¹Ç¼Ü  £¨°¸Àý #02 ÅäÌ×£©
  3. // ============================================================================
  4. //  Õâ²ÅÊÇÒ»ÌõÕý³£ÔÚÅܵĽű¾£º¸´Î» ¡ú Ö÷Ñ­»· ¡ú ÿÂÖ ÕÒͼ/OCR ¡ú ÃüÖо͵㠡ú Ï»¬ ¡ú Ëæ»úµÈ´ý ¡ú ´òÈÕÖ¾¡£
  5. //  »á³ÖÐøÔËÐУ¨Ä¬ÈÏ 20 ÂÖ¡¢Ã¿ÂÖµÈ 1.5~4 Ã룬¼¸Ê®Ãë~¼¸·ÖÖÓ£©£¬²»ÊÇÒ»Ãë½áÊøµÄ×Լ졣
  6. //
  7. //  Ó÷¨£º
  8. //    1) Ö»¸Ä¡¾ÅäÖÃÇø CFG¡¿£ºtargets ÀïÌîÄãµÄ°´Å¥Ä£°å(base64£¬Ã»ÓоÍÁô null)£¬words ÀïÌî½çÃæÕæÊµÎÄ×Ö£»
  9. //    2) Ö±½ÓÔËÐУ¬¿´ÈÕÖ¾£ºÃ¿Ò»ÂÖ×öʲô¡¢µãûµã¡¢×ø±ê¶àÉÙ¡¢ÏÂÒ»ÂÖʲôʱºò¿ª£¬È«´ò³öÀ´£»
  10. //    3) ÀïÃæ findPic / ocrFind / doClick / doSwipe ¶¼ÊǿɿÙ×ßµÄͨÓú¯Êý£¬±Ü¿Óд·¨ÒѺ¸ËÀ£º
  11. //       ÅÐ null ²»±À¡¢°Ù·Ö±È×ø±ê percentToWidth/Height תÏñËØ¡¢½ØÍ¼ÓÃÍê recycle¡£
  12. //
  13. //  °²È«£ºÄ¬ÈÏ RUN_CLICK=false ʱֻ¡°ÕÒµ½²¢´òÓ¡×ø±ê¡±²»Õæµã£¬ÏÈ¿ÕÅÜÑéÖ¤ÔÙ·Å¿ª£¬·ÀÎóµã¡£
  14. // ============================================================================

  15. // ============================ Ò»¡¢ÅäÖÃÇø£¨Ö»¸ÄÕâÀ ============================
  16. var CFG = {
  17.     rounds: 20,                     // ÅܶàÉÙÂÖºó×Ô¶¯½áÊø£¨ÏëÒ»Ö±ÅܾÍдºÜ´ó£¬Èç 999999£©
  18.     runClick: true,                // ¡ïÏÈ false ¿ÕÅÜ¿´ÈÕÖ¾£¬È·ÈÏÕҵöÔÔÙ¸Ä true Õæµã
  19.     scroll: true,                   // ÿÂÖ½áÊøºóÏ»¬Ò»ÆÁ£¨Ñø»ú/ÐÅÏ¢Á÷³£Óã©
  20.     waitMin: 1500, waitMax: 4000,   // ÿÂÖËæ»úµÈ´ý(ms)£¬·À·â£¬±ðÉè¹Ì¶¨Öµ
  21.     idleStop: 6,                    // Á¬ÐøÕâô¶àÂÖɶ¶¼Ã»ÃüÖоÍÌáǰÊÕ¹¤£¨0=²»Í££©

  22.     // Ä£°åÕÒͼ£º{Ãû×Ö, base64Ä£°å(ûÓÐÌî null), ËÑË÷ÇøÓò±ÈÀý[x1,y1,x2,y2]}
  23.     targets: [
  24.         { name: "¹Ø×¢°´Å¥", tpl: null, region: [0, 0, 1, 1] },
  25.         { name: "¹Ø±Õ¹ã¸æX", tpl: null, region: [0.80, 0, 1, 0.20] },
  26.     ],
  27.     // OCR µã×Ö¶µµ×£º½çÃæÀï³öÏÖÕâЩÎÄ×־͵ãËü£¨»»³ÉÄã App µÄÕæÊµ°´Å¥Îݸ£©
  28.     words: ["¹Ø×¢", "µãÔÞ", "ÏÂÒ»Ìõ"],

  29.     threshold: 0.82,                // ÕÒͼãÐÖµ£¬ÕÒ²»µ½ÏȽµµ½ 0.75 ÔÙÊÔ
  30. };

  31. // ============================ ¶þ¡¢Í¨Óú¯Êý£¨¿ÉÕû¶Î¸´Öƽø¹¤³Ì£© ============================
  32. function log(msg) { printl("[" + new Date().getTime() % 100000 + "] " + msg); }  // printl ²ÅÓÐÊä³ö

  33. function getScr() {
  34.     var s = { w: 1080, h: 2400 };
  35.     try { s.w = screen.getScreenWidth(); s.h = screen.getScreenHeight(); } catch (e) {}
  36.     return s;
  37. }
  38. function rand(a, b) { return Math.floor(a + Math.random() * (b - a + 1)); }
  39. function sleepMs(ms) { try { sleep.millisecond(ms); } catch (e) { java.lang.Thread.sleep(ms); } }

  40. // µã»÷£ºÎÞÕϰ­ auto.clickPoint ¡ú È«¾Ö click Á½¼¶½µ¼¶£¨²»ÓÃHID£©£»runClick=false ʱֻ´òÓ¡
  41. function doClick(x, y, tag) {
  42.     x = Math.max(1, Math.min(getScr().w - 1, x));
  43.     y = Math.max(1, Math.min(getScr().h - 1, y));
  44.     if (!CFG.runClick) { log("  Õ¼Î»²»µã[" + tag + "] (" + x + "," + y + ") ¡ª¡ª runClick=false"); return false; }
  45.     var ok = false;
  46.     try { if (typeof auto !== "undefined" && auto.clickPoint) { auto.clickPoint(x, y); ok = true; } } catch (e) {}
  47.     if (!ok) { try { click(x, y); ok = true; } catch (e) {} }
  48.     log("  µã»÷[" + tag + "] (" + x + "," + y + ") ok=" + ok);
  49.     return ok;
  50. }

  51. // Ï»¬Ò»ÆÁ£ºauto.swip ¡ú auto.dispatchGesture Á½¼¶½µ¼¶£¨ÎÞÕϰ­£¬²»ÓÃHID£©
  52. function doSwipe() {
  53.     if (!CFG.scroll) return;
  54.     var s = getScr();
  55.     var cx = Math.round(s.w * 0.5), y1 = Math.round(s.h * 0.75), y2 = Math.round(s.h * 0.30);
  56.     var ok = false;
  57.     try { if (typeof auto !== "undefined" && auto.swip) { auto.swip(cx, y1, cx, y2, 600, 0); ok = true; } } catch (e) {}
  58.     if (!ok) { try { if (typeof auto !== "undefined" && auto.dispatchGesture) { auto.dispatchGesture(cx, y1, cx, y2, 600); ok = true; } } catch (e) {} }
  59.     log("  Ï»¬ (" + y1 + "¡ú" + y2 + ") ok=" + ok);
  60. }

  61. // ÕÒͼ£º¡ïÅÐ null + ¡ï°Ù·Ö±ÈתÏñËØ£¨°¸Àý #02 Á½ÌõÃüÃŶ¼ÔÚÕ⣩
  62. function findPic(templateB64, regionPct, threshold) {
  63.     if (!templateB64) return null;
  64.     var region = regionPct || [0, 0, 1, 1];
  65.     var detects = null;
  66.     try { detects = auto.findImages([templateB64], threshold == null ? CFG.threshold : threshold, 0, 1, region); }
  67.     catch (e) { log("  findImagesÒì³£(µ±null): " + e); return null; }
  68.     if (!detects || detects.length === 0) return null;          // ÃüÃÅ¢Ù£ºÏÈÅпգ¬ÕÒ²»µ½·µ»Ø null ²»±À
  69.     var cx = detects[0].getRect().getCenterX();                 // ÃüÃÅ¢Ú£ºÕâÊÇ°Ù·Ö±È 0~1
  70.     var cy = detects[0].getRect().getCenterY();
  71.     var px = screen.percentToWidth(cx), py = screen.percentToHeight(cy); // ±ØÐë»»Ëã³ÉÏñËØ
  72.     return { px: Math.round(px), py: Math.round(py), count: detects.length };
  73. }

  74. // OCR ÕÒ×Ö²¢µã»÷£¨»»·Ö±æÂÊ/¸Ä°æ¶¼Äܵ㣬ÕÒͼµÄ×î¼Ñ¶µµ×£©
  75. function ocrFindAndClick(word) {
  76.     var img = screen.screenShotFull();
  77.     try {
  78.         var ocr = img.paddleOCR(640, [0, 0, 1, 1]);
  79.         var hit = (ocr && ocr.findIncludeText) ? ocr.findIncludeText(word) : null;
  80.         if (!hit) return null;
  81.         var r = (hit.getRect) ? hit.getRect() : null;
  82.         var x, y;
  83.         if (r) { x = screen.percentToWidth(r.getCenterX()); y = screen.percentToHeight(r.getCenterY()); }
  84.         else { x = null; y = null; }
  85.         if (CFG.runClick) { try { hit.click(); } catch (e) {} }
  86.         return { x: x, y: y };
  87.     } catch (e) { return null; }
  88.     finally { try { img.recycle(); } catch (e) {} }              // ÃüÃÅ¢Û£ºÓÃÍê»ØÊÕ
  89. }

  90. // ============================ Èý¡¢Ö÷Ñ­»·£¨ÕæÔÚÅܵÄÄǶΣ© ============================
  91. function reset() {
  92.     log("¸´Î»£º»Øµ½×ÀÃæÇå²ÐÁô£¬ÔÙ½øÄ¿±êÒ³");
  93.     try { if (typeof auto !== "undefined" && auto.home) auto.home(); } catch (e) {}
  94.     sleepMs(800);
  95.     try { if (typeof back !== "undefined") back(); } catch (e) {}
  96.     sleepMs(500);
  97. }

  98. function oneRound(i) {
  99.     log("¡ª µÚ " + i + " ÂÖ ¿ªÊ¼£¨ÆÁ " + getScr().w + "x" + getScr().h + "£¬runClick=" + CFG.runClick + "£©");
  100.     var acted = false;

  101.     // 1) ÏȰ´Ä£°åÕÒͼ
  102.     for (var t = 0; t < CFG.targets.length; t++) {
  103.         var tg = CFG.targets[t];
  104.         if (!tg.tpl) continue;                                   // ûÅäÄ£°åÌø¹ý
  105.         var f = findPic(tg.tpl, tg.region, CFG.threshold);
  106.         if (f) { log("  ÕÒͼÃüÖÐ[" + tg.name + "] ¹²" + f.count + "´¦ ¡ú ÏñËØ(" + f.px + "," + f.py + ")"); doClick(f.px, f.py, tg.name); acted = true; }
  107.         else { log("  ÕÒͼδÃüÖÐ[" + tg.name + "]£¨²»±À£¬¼ÌÐø£©"); }
  108.     }

  109.     // 2) ÕÒͼûÖÐ ¡ú OCR µã×Ö¶µµ×
  110.     if (!acted) {
  111.         for (var w = 0; w < CFG.words.length; w++) {
  112.             var o = ocrFindAndClick(CFG.words[w]);
  113.             if (o) { log("  OCRÃüÖÐÎÄ×Ö¡¸" + CFG.words[w] + "¡¹¡ú " + (o.x == null ? "Òѵã(Î´È¡×ø±ê)" : "ÏñËØ(" + o.x + "," + o.y + ")")); acted = true; break; }
  114.         }
  115.     }

  116.     if (!acted) log("  ±¾ÂÖûÕÒµ½ÈκÎÄ¿±ê ¡ú Ï»¬»»ÄÚÈÝ");

  117.     // 3) Ï»¬ + Ëæ»úµÈ´ý
  118.     doSwipe();
  119.     var wait = rand(CFG.waitMin, CFG.waitMax);
  120.     log("  ±¾ÂÖ½áÊø£¬µÈ´ý " + wait + "ms ºó½øÈëÏÂÒ»ÂÖ\n");
  121.     sleepMs(wait);
  122.     return acted;
  123. }

  124. function main() {
  125.     var s = getScr();
  126.     log("========================================");
  127.     log(" Æô¶¯ ͨÓÃÕÒͼ/OCRµã»÷½Å±¾  ±¾»ú " + s.w + "x" + s.h + "  ¹² " + CFG.rounds + " ÂÖ");
  128.     log(" runClick=" + CFG.runClick + "£¨false=¿ÕÅÜÖ»¿´ÈÕÖ¾²»Õæµã£¬ÑéÖ¤OKÔÙ¸Ätrue£©");
  129.     log("========================================");
  130.     reset();
  131.     var idle = 0;
  132.     for (var i = 1; i <= CFG.rounds; i++) {
  133.         var acted = oneRound(i);
  134.         if (acted) idle = 0; else idle++;
  135.         if (CFG.idleStop > 0 && idle >= CFG.idleStop) { log("Á¬Ðø " + idle + " ÂÖÎÞÃüÖУ¬ÌáǰÊÕ¹¤¡£¶à°ëÊÇ£ºÄ¿±êÎÄ×Ö/Ä£°å²»¶Ô£¬»ò·Ö±æÂʱäÁËÄ£°åʧÅä ¡ú ¼û°¸Àý #02 µÚ6½Ú"); break; }
  136.     }
  137.     log("È«²¿½áÊø¡£");
  138. }

  139. main();
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

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

¹Ø±Õ

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

map2

GMT+8, 2026-9-9 07:31 , Processed in 0.097782 second(s), 33 queries .

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