信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 4|回复: 0
打印 上一主题 下一主题

[宣传软件网站动态] 自动百度贴吧示例

[复制链接]

786

主题

870

帖子

5578

积分

积分
5578

资讯缩略图:

资讯发布日期:2026-07-09

资讯发布简介:自动百度贴吧示例

资讯关键词:自动百度贴吧示例

资讯所属分类:IT资讯 

联系:

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件网站分类目录 网址:http://www.postbbs.com/

资讯详细描述
自动百度贴吧示例
自动百度贴吧示例 b2b软件

  1. // AIWROK 完整自动化流程:启动百度贴吧 → 点击发帖 → 选择吧 → 输入标题和内容 → 发布
  2. // 全程使用 agent 方式操作,不依赖无障碍权限


  3. print.log("===== 百度贴吧发帖流程启动 =====");
  4. print.time();

  5. // ========== 配置区 ==========
  6. var APP包名 = "com.baidu.tieba";

  7. var 循环次数 = 1;
  8. var 当前循环 = 0;

  9. var 发布标题列表 = [
  10.     "这是一个测试标题",
  11.     "分享一下今天的心情",
  12.     "来讨论一下热门话题"
  13. ];

  14. var 发布内容列表 = [
  15.     "无聊,就发一发帖子看看有什么好玩的。",
  16.     "今天天气不错,分享一个日常~",
  17.     "记录生活中的小美好,欢迎大家一起讨论!"
  18. ];

  19. var 内容索引 = 0;

  20. // ========== 获取设备信息 ==========
  21. var 屏幕宽 = screen.getScreenWidth();
  22. var 屏幕高 = screen.getScreenHeight();
  23. print.log("屏幕尺寸:" + 屏幕宽 + " x " + 屏幕高);
  24. print.log("代理状态:" + (agent.isOpen() ? "已开启" : "未开启"));

  25. // ========== 工具函数 ==========
  26. function 获取XML() {
  27.     var raw = agent.shell("uiautomator dump --compressed /proc/self/fd/1 2>/dev/null");
  28.     var rawStr = "" + raw;
  29.     var startIdx = rawStr.indexOf("<?xml");
  30.     var endIdx = rawStr.indexOf("</hierarchy>");
  31.     if (startIdx !== -1 && endIdx !== -1) {
  32.         return rawStr.substring(startIdx, endIdx + 13);
  33.     }
  34.     return rawStr;
  35. }

  36. function 查找节点中心(xml, text) {
  37.     var idx = ("" + xml).indexOf('text="' + text + '"');
  38.     if (idx === -1) {
  39.         idx = ("" + xml).indexOf("text='" + text + "'");
  40.     }
  41.     if (idx === -1) {
  42.         return null;
  43.     }
  44.     var 后面 = ("" + xml).substring(idx);
  45.     var m = 后面.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  46.     if (!m) {
  47.         m = 后面.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  48.     }
  49.     if (!m) {
  50.         return null;
  51.     }
  52.     var x1 = parseInt(m[1]);
  53.     var y1 = parseInt(m[2]);
  54.     var x2 = parseInt(m[3]);
  55.     var y2 = parseInt(m[4]);
  56.     return {
  57.         x: (x1 + x2) / 2,
  58.         y: (y1 + y2) / 2
  59.     };
  60. }

  61. function 查找输入框中心(xml, hintText) {
  62.     var xmlStr = "" + xml;

  63.     var editTextPattern = /<node[^>]*?class="android\.widget\.EditText"[^>]*?\/>/g;
  64.     var match;
  65.     while ((match = editTextPattern.exec(xmlStr)) !== null) {
  66.         var nodeStr = match[0];
  67.         var textMatch = nodeStr.match(/text="([^"]*)"/);
  68.         if (!textMatch) {
  69.             textMatch = nodeStr.match(/text='([^']*)'/);
  70.         }
  71.         if (textMatch && textMatch[1].indexOf(hintText) !== -1) {
  72.             var boundsMatch = nodeStr.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  73.             if (!boundsMatch) {
  74.                 boundsMatch = nodeStr.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  75.             }
  76.             if (boundsMatch) {
  77.                 var x1 = parseInt(boundsMatch[1]);
  78.                 var y1 = parseInt(boundsMatch[2]);
  79.                 var x2 = parseInt(boundsMatch[3]);
  80.                 var y2 = parseInt(boundsMatch[4]);
  81.                 return {
  82.                     x: (x1 + x2) / 2,
  83.                     y: (y1 + y2) / 2
  84.                 };
  85.             }
  86.         }
  87.     }

  88.     var textPattern = new RegExp('text="([^"]*?' + hintText + '[^"]*)"', 'g');
  89.     while ((match = textPattern.exec(xmlStr)) !== null) {
  90.         var afterText = xmlStr.substring(match.index);
  91.         var boundsMatch = afterText.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  92.         if (!boundsMatch) {
  93.             boundsMatch = afterText.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  94.         }
  95.         if (boundsMatch) {
  96.             var x1 = parseInt(boundsMatch[1]);
  97.             var y1 = parseInt(boundsMatch[2]);
  98.             var x2 = parseInt(boundsMatch[3]);
  99.             var y2 = parseInt(boundsMatch[4]);
  100.             return {
  101.                 x: (x1 + x2) / 2,
  102.                 y: (y1 + y2) / 2
  103.             };
  104.         }
  105.     }

  106.     return null;
  107. }

  108. function 查找RecyclerView第一个条目(xml) {
  109.     var xmlStr = "" + xml;
  110.     var pattern = /class="androidx\.recyclerview\.widget\.RecyclerView"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/;
  111.     var match = xmlStr.match(pattern);
  112.     if (!match) {
  113.         pattern = /class='androidx\.recyclerview\.widget\.RecyclerView'[^>]*?bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/;
  114.         match = xmlStr.match(pattern);
  115.     }

  116.     if (match) {
  117.         var rvX1 = parseInt(match[1]);
  118.         var rvY1 = parseInt(match[2]);
  119.         var rvX2 = parseInt(match[3]);
  120.         var rvY2 = parseInt(match[4]);

  121.         var rvCenterX = (rvX1 + rvX2) / 2;
  122.         var rvTopY = rvY1 + 200;

  123.         return {
  124.             x: rvCenterX,
  125.             y: rvTopY
  126.         };
  127.     }

  128.     return null;
  129. }

  130. function 查找底部导航中间按钮(xml) {
  131.     var pattern = /<node\s[^>]*?index="3"[^>]*?class="android\.widget\.FrameLayout"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  132.     var match;
  133.     while ((match = pattern.exec(xml)) !== null) {
  134.         var x1 = parseInt(match[1]);
  135.         var y1 = parseInt(match[2]);
  136.         var x2 = parseInt(match[3]);
  137.         var y2 = parseInt(match[4]);
  138.         var centerY = (y1 + y2) / 2;
  139.         if (centerY > 屏幕高 * 0.8) {
  140.             return {
  141.                 x: (x1 + x2) / 2,
  142.                 y: centerY
  143.             };
  144.         }
  145.     }

  146.     var pattern2 = /NAF="true"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  147.     while ((match = pattern2.exec(xml)) !== null) {
  148.         var x1 = parseInt(match[1]);
  149.         var y1 = parseInt(match[2]);
  150.         var x2 = parseInt(match[3]);
  151.         var y2 = parseInt(match[4]);
  152.         var centerX = (x1 + x2) / 2;
  153.         var centerY = (y1 + y2) / 2;
  154.         if (centerY > 屏幕高 * 0.85 && centerX > 屏幕宽 * 0.3 && centerX < 屏幕宽 * 0.7) {
  155.             return {
  156.                 x: centerX,
  157.                 y: centerY
  158.             };
  159.         }
  160.     }

  161.     return null;
  162. }

  163. function 设置ADB输入法() {
  164.     try {
  165.         var 当前输入法 = ("" + agent.shell("settings get secure default_input_method")).trim();
  166.         print.log("当前默认输入法:" + 当前输入法);
  167.         
  168.         var adbKeyboard = "com.android.adbkeyboard/.AdbIME";
  169.         if (当前输入法.indexOf("adbkeyboard") === -1) {
  170.             print.log("当前不是ADB输入法,尝试切换");
  171.             agent.shell("ime enable " + adbKeyboard);
  172.             sleep.millisecond(毫秒 = 300);
  173.             agent.shell("ime set " + adbKeyboard);
  174.             sleep.millisecond(毫秒 = 500);
  175.             print.log("✓ 已切换到ADB输入法");
  176.         } else {
  177.             print.log("✓ 当前已是ADB输入法");
  178.         }
  179.     } catch (e) {
  180.         print.log("⚠ 设置ADB输入法失败:" + e.message);
  181.         print.log("提示:请手动安装ADB Keyboard并设置为默认输入法");
  182.     }
  183. }

  184. function 输入文本(content, x, y) {
  185.     var 粘贴成功 = false;

  186.     agent.click(Math.floor(x), Math.floor(y));
  187.     sleep.second(秒 = 1);

  188.     agent.shell("service call clipboard 4 i32 1 s16 '" + content + "' i32 0");
  189.     sleep.millisecond(毫秒 = 300);
  190.     agent.shell("service call clipboard 3 i32 1 s16 '" + content + "' i32 0");
  191.     sleep.millisecond(毫秒 = 300);
  192.     Clipboard.copy(content);
  193.     sleep.millisecond(毫秒 = 300);

  194.     print.log("✓ 剪贴板已设置内容");

  195.     agent.shell("input keyevent 279");
  196.     sleep.second(秒 = 1);
  197.     var xmlA = 获取XML();
  198.     if (xmlA.indexOf(content.substring(0, 2)) !== -1) {
  199.         粘贴成功 = true;
  200.         print.log("✓ KEYCODE_PASTE 粘贴成功");
  201.     }

  202.     if (!粘贴成功) {
  203.         agent.shell("input keyevent 50 --meta 0x1000");
  204.         sleep.second(秒 = 1);
  205.         var xmlB = 获取XML();
  206.         if (xmlB.indexOf(content.substring(0, 2)) !== -1) {
  207.             粘贴成功 = true;
  208.             print.log("✓ Ctrl+V 粘贴成功");
  209.         }
  210.     }

  211.     if (!粘贴成功) {
  212.         var 长按命令 = "input swipe " + Math.floor(x) + " " + Math.floor(y) + " " + (Math.floor(x) + 1) + " " + (Math.floor(y) + 1) + " 2000";
  213.         agent.shell(长按命令);
  214.         sleep.second(秒 = 2);

  215.         var xmlC = 获取XML();
  216.         var 关键词 = ["粘贴", "Paste", "paste"];
  217.         for (var i = 0; i < 关键词.length; i++) {
  218.             if (xmlC.indexOf(关键词[i]) !== -1) {
  219.                 var 后面 = xmlC.substring(xmlC.indexOf(关键词[i]));
  220.                 var m = 后面.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  221.                 if (!m) {
  222.                     m = 后面.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  223.                 }
  224.                 if (m) {
  225.                     var cx = (parseInt(m[1]) + parseInt(m[3])) / 2;
  226.                     var cy = (parseInt(m[2]) + parseInt(m[4])) / 2;
  227.                     agent.click(cx, cy);
  228.                     粘贴成功 = true;
  229.                     print.log("✓ 长按粘贴成功");
  230.                     break;
  231.                 }
  232.             }
  233.         }
  234.     }

  235.     if (!粘贴成功) {
  236.         print.log("✗ 所有粘贴方式均未成功");
  237.     }

  238.     return 粘贴成功;
  239. }

  240. // ========================================
  241. // 主循环开始
  242. // ========================================
  243. for (当前循环 = 1; 循环次数 == 0 || 当前循环 <= 循环次数; 当前循环++) {
  244.     if (循环次数 > 0) {
  245.         print.log("\n======================================");
  246.         print.log("===== 第 " + 当前循环 + " / " + 循环次数 + " 次循环 =====");
  247.         print.log("======================================");
  248.     } else {
  249.         print.log("\n======================================");
  250.         print.log("===== 第 " + 当前循环 + " 次循环(无限模式)=====");
  251.         print.log("======================================");
  252.     }

  253.     var 发布标题 = 发布标题列表[内容索引 % 发布标题列表.length];
  254.     var 发布内容 = 发布内容列表[内容索引 % 发布内容列表.length];
  255.     内容索引++;

  256.     print.log("本次发布标题:" + 发布标题);
  257.     print.log("本次发布内容:" + 发布内容);

  258.     // ========================================
  259.     // 步骤1:启动百度贴吧
  260.     // ========================================
  261.     print.log("\n========== 步骤1:启动百度贴吧 ==========");
  262.     try {
  263.         app.openApp(APP包名);
  264.         print.log("✓ 已启动百度贴吧");
  265.     } catch (e) {
  266.         print.log("✗ 启动失败:" + e.message);
  267.     }
  268.     sleep.second(秒 = 5);

  269.     // ========================================
  270.     // 步骤2:设置ADB输入法(支持中文输入)
  271.     // ========================================
  272.     print.log("\n========== 步骤2:设置ADB输入法 ==========");
  273.     设置ADB输入法();

  274.     // ========================================
  275.     // 步骤3:点击底部导航中间的加号按钮
  276.     // ========================================
  277.     print.log("\n========== 步骤3:点击底部导航中间的加号按钮 ==========");
  278.     var 加号按钮点击成功 = false;

  279.     for (var i = 0; i < 5; i++) {
  280.         var xml2 = 获取XML();
  281.         print.log("  正在扫描界面...");

  282.         var 加号按钮位置 = 查找底部导航中间按钮(xml2);
  283.         if (加号按钮位置) {
  284.             print.log("  ✓ 找到底部导航中间按钮:(" + Math.floor(加号按钮位置.x) + ", " + Math.floor(加号按钮位置.y) + ")");
  285.             agent.click(Math.floor(加号按钮位置.x), Math.floor(加号按钮位置.y));
  286.             加号按钮点击成功 = true;
  287.             sleep.second(秒 = 3);

  288.             var xml2b = 获取XML();
  289.             var 发布贴子选项位置 = 查找节点中心(xml2b, "发布贴子");
  290.             if (发布贴子选项位置) {
  291.                 print.log("  ✓ 找到发布贴子选项");
  292.                 agent.click(Math.floor(发布贴子选项位置.x), Math.floor(发布贴子选项位置.y));
  293.                 print.log("✓ 已进入发布贴子页面");
  294.             }
  295.             break;
  296.         }

  297.         sleep.second(秒 = 2);
  298.     }

  299.     if (!加号按钮点击成功) {
  300.         print.log("⚠ 未找到加号按钮,使用百分比坐标");
  301.         agent.clickPercent(0.5, 0.96);
  302.         sleep.second(秒 = 3);

  303.         var xml2c = 获取XML();
  304.         var 发布贴子选项位置 = 查找节点中心(xml2c, "发布贴子");
  305.         if (发布贴子选项位置) {
  306.             print.log("  ✓ 找到发布贴子选项");
  307.             agent.click(Math.floor(发布贴子选项位置.x), Math.floor(发布贴子选项位置.y));
  308.             print.log("✓ 已进入发布贴子页面");
  309.         }
  310.     }

  311.     // ========================================
  312.     // 步骤4:选择吧
  313.     // ========================================
  314.     print.log("\n========== 步骤4:选择吧 ==========");
  315.     var 选择吧完成 = false;
  316.     var 已经点击选择吧 = false;

  317.     for (var j = 0; j < 5; j++) {
  318.         var xml3 = 获取XML();

  319.         if (xml3.indexOf("最近逛的吧") !== -1 || xml3.indexOf("关注的吧") !== -1) {
  320.             var 第一个吧位置 = 查找RecyclerView第一个条目(xml3);
  321.             if (第一个吧位置) {
  322.                 print.log("  ✓ 选择列表中第一个吧:(" + Math.floor(第一个吧位置.x) + ", " + Math.floor(第一个吧位置.y) + ")");
  323.                 agent.click(Math.floor(第一个吧位置.x), Math.floor(第一个吧位置.y));
  324.                 sleep.second(秒 = 3);
  325.                 选择吧完成 = true;
  326.                 break;
  327.             }
  328.         }

  329.         var 选择吧位置 = 查找节点中心(xml3, "选择吧");
  330.         if (选择吧位置 && !已经点击选择吧) {
  331.             print.log("  ✓ 找到选择吧:(" + Math.floor(选择吧位置.x) + ", " + Math.floor(选择吧位置.y) + ")");
  332.             agent.click(Math.floor(选择吧位置.x), Math.floor(选择吧位置.y));
  333.             已经点击选择吧 = true;
  334.             sleep.second(秒 = 3);
  335.         } else if (xml3.indexOf("发布贴子") !== -1) {
  336.             print.log("✓ 已在发布页面(可能已选吧)");
  337.             选择吧完成 = true;
  338.             break;
  339.         }

  340.         sleep.second(秒 = 2);
  341.     }

  342.     if (!选择吧完成) {
  343.         print.log("⚠ 跳过选择吧步骤");
  344.     }

  345.     // ========================================
  346.     // 步骤5:输入标题
  347.     // ========================================
  348.     print.log("\n========== 步骤5:输入标题 ==========");
  349.     var 标题输入成功 = false;

  350.     for (var k = 0; k < 5; k++) {
  351.         var xml4 = 获取XML();

  352.         var 标题输入框位置 = 查找输入框中心(xml4, "请输入完整贴子标题");
  353.         if (!标题输入框位置) {
  354.             标题输入框位置 = 查找输入框中心(xml4, "完整贴子标题");
  355.         }
  356.         if (!标题输入框位置) {
  357.             标题输入框位置 = 查找输入框中心(xml4, "标题");
  358.         }

  359.         if (标题输入框位置) {
  360.             print.log("  ✓ 找到标题输入框:(" + Math.floor(标题输入框位置.x) + ", " + Math.floor(标题输入框位置.y) + ")");

  361.             var 粘贴结果 = 输入文本(发布标题, 标题输入框位置.x, 标题输入框位置.y);
  362.             if (粘贴结果) {
  363.                 print.log("✓ 标题输入成功");
  364.                 标题输入成功 = true;
  365.             } else {
  366.                 print.log("✗ 标题输入失败");
  367.             }
  368.             break;
  369.         }

  370.         sleep.second(秒 = 2);
  371.     }

  372.     if (!标题输入成功) {
  373.         print.log("✗ 标题输入失败");
  374.     }

  375.     // ========================================
  376.     // 步骤6:输入内容
  377.     // ========================================
  378.     print.log("\n========== 步骤6:输入内容 ==========");
  379.     var 内容输入成功 = false;

  380.     for (var l = 0; l < 5; l++) {
  381.         var xml5 = 获取XML();

  382.         var 内容输入框位置 = 查找输入框中心(xml5, "来吧,尽情发挥吧");
  383.         if (!内容输入框位置) {
  384.             内容输入框位置 = 查找输入框中心(xml5, "尽情发挥");
  385.         }
  386.         if (!内容输入框位置) {
  387.             内容输入框位置 = 查找输入框中心(xml5, "请输入内容");
  388.         }

  389.         if (内容输入框位置) {
  390.             print.log("  ✓ 找到内容输入框:(" + Math.floor(内容输入框位置.x) + ", " + Math.floor(内容输入框位置.y) + ")");

  391.             var 粘贴结果 = 输入文本(发布内容, 内容输入框位置.x, 内容输入框位置.y);
  392.             if (粘贴结果) {
  393.                 print.log("✓ 内容输入成功");
  394.                 内容输入成功 = true;
  395.             } else {
  396.                 print.log("✗ 内容输入失败");
  397.             }
  398.             break;
  399.         }

  400.         sleep.second(秒 = 2);
  401.     }

  402.     if (!内容输入成功) {
  403.         print.log("✗ 内容输入失败");
  404.     }

  405.     // ========================================
  406.     // 步骤7:点击发布
  407.     // ========================================
  408.     print.log("\n========== 步骤7:点击发布 ==========");
  409.     var 发布成功 = false;

  410.     for (var m = 0; m < 5; m++) {
  411.         var xml6 = 获取XML();

  412.         var 发布按钮位置 = 查找节点中心(xml6, "发布");
  413.         if (发布按钮位置) {
  414.             print.log("  ✓ 找到发布按钮:(" + Math.floor(发布按钮位置.x) + ", " + Math.floor(发布按钮位置.y) + ")");
  415.             agent.click(Math.floor(发布按钮位置.x), Math.floor(发布按钮位置.y));
  416.             sleep.second(秒 = 3);

  417.             var xml6b = 获取XML();
  418.             if (xml6b.indexOf("发布成功") !== -1 || xml6b.indexOf("帖子已发布") !== -1) {
  419.                 print.log("✓ 帖子发布成功");
  420.                 发布成功 = true;
  421.             } else if (xml6b.indexOf("发布贴子") === -1) {
  422.                 print.log("✓ 已离开发布页面,发布流程完成");
  423.                 发布成功 = true;
  424.             } else {
  425.                 print.log("⚠ 发布按钮点击后页面未变化");
  426.             }
  427.             break;
  428.         }

  429.         sleep.second(秒 = 2);
  430.     }

  431.     if (!发布成功) {
  432.         print.log("✗ 发布失败");
  433.     }

  434.     // ========================================
  435.     // 步骤8:关闭APP
  436.     // ========================================
  437.     print.log("\n========== 步骤8:关闭APP ==========");
  438.     try {
  439.         agent.shell("am force-stop " + APP包名);
  440.         print.log("✓ 已关闭百度贴吧");
  441.     } catch (e) {
  442.         print.log("⚠ 关闭APP失败:" + e.message);
  443.     }
  444.     sleep.second(秒 = 3);

  445.     // ========================================
  446.     // 循环间隔
  447.     // ========================================
  448.     if (循环次数 == 0 || 当前循环 < 循环次数) {
  449.         print.log("\n========== 等待下一次循环 ==========");
  450.         sleep.second(秒 = 5);
  451.     }
  452. }

  453. // ========================================
  454. // 结果汇总
  455. // ========================================
  456. print.timeEnd();
  457. print.log("\n======================================");
  458. print.log("===== 所有循环执行完成 =====");
  459. if (循环次数 > 0) {
  460.     print.log("总计执行:" + 循环次数 + " 次");
  461. } else {
  462.     print.log("无限循环模式,已执行:" + (当前循环 - 1) + " 次");
  463. }
  464. print.log("======================================");
复制代码



unto代理模式简书自动流程nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
信息发布软件自动百度贴吧示例
自动百度贴吧示例
信息发布软件代理模式简书自动流程
代理模式简书自动流程
信息发布软件启动极速版任务页看小说赚钱自动阅读
启动极速版任务页看小说赚钱自动阅读
信息发布软件agent代理模式功能小结
agent代理模式功能小结
信息发布软件完整苹果IOS小脚本文本输入与粘贴流程
完整苹果IOS小脚本文本输入与粘贴流程
信息发布软件AIWROK使用activity列表开关与进度条的协同交互
AIWROK使用activity列表开关与进度条的协同交互
群发软件苹果脚本找图后Detect对象各种方法演示
苹果脚本找图后Detect对象各种方法演示
群发软件苹果脚本网络API监控与数据管理工具
苹果脚本网络API监控与数据管理工具
群发软件IOS苹果脚本TXT文件读写H5日志打印完整示例
IOS苹果脚本TXT文件读写H5日志打印完整示例
群发软件AIWROK软件演示多线程创建暂停恢复
AIWROK软件演示多线程创建暂停恢复
群发软件AIWROK软件定时检查页面状态防止卡死技巧
AIWROK软件定时检查页面状态防止卡死技巧
群发软件安卓脚本runTime相关功能示例
安卓脚本runTime相关功能示例
群发软件floatUI实例秒显示秒关闭吐司功能
floatUI实例秒显示秒关闭吐司功能
群发软件苹果脚本HID多行实例粘帖板示例
苹果脚本HID多行实例粘帖板示例
群发软件安卓脚本HID节点查找完整方法示例
HID节点查找完整方法示例
群发软件AIWROK软件框架的抖音自动化营销系统
AIWROK软件框架的抖音自动化营销系统
群发软件赛博朋克任务控制中心H5示例
赛博朋克任务控制中心H5示例
群发软件苹果脚本现代深色UI设计风格
现代深色UI设计风格
群发软件AIWROK软件智能任务监控悬浮窗
AIWROK软件智能任务监控悬浮窗
群发软件AIWROK软件事件监听示例
AIWROK软件事件监听示例
群发软件QZ掘金原生UI界面
QZ掘金原生UI界面
群发软件安卓脚本auto方法完整示例
安卓脚本auto方法完整示例
群发软件安卓脚本暂停弹出确认对话框
安卓脚本暂停弹出确认对话框
群发软件苹果iOS脚本天气信息查询工具
苹果iOS脚本天气信息查询工具
群发软件安卓脚本简化版H5日志输出窗口
安卓脚本简化版H5日志输出窗口
群发软件安卓脚本简化版H5日志输出窗口
安卓脚本简化版H5日志输出窗口
群发软件安卓脚本应用重置、代理模式监控及补丁升级
安卓脚本应用重置、代理模式监控及补丁升级
群发软件安卓脚本里的打开关闭安装以及卡密授权信息
安卓脚本里的打开关闭安装以及卡密授权信息
群发软件AIWROK软件脚本GET下载文件并检测0KB工具
AIWROK软件脚本GET下载文件并检测0KB工具
群发软件安卓脚本HID按键方法完整示例
安卓脚本HID按键方法完整示例
群发软件AIWROK软件键鼠HID滑动所有方法功能演示
AIWROK软件键鼠HID滑动所有方法功能演示
群发软件苹果脚本里HID的5种滑动方法的使用
苹果脚本里HID的5种滑动方法的使用
群发软件苹果脚本示例7种不同的OCR识别和点击方法
苹果脚本示例7种不同的OCR识别和点击方法
群发软件AIWROK软件安卓脚本FTP上传下载例子
AIWROK软件安卓脚本FTP上传下载例子
群发软件AIWROK软件脚本JSON转换示例
AIWROK软件脚本JSON转换示例
群发软件AIWROK软件运算符高级应用实例
AIWROK软件运算符高级应用实例
群发软件JavaScript语法小示例
JavaScript语法小示例
群发软件展示JavaScript各种语句标识符的实际应用
展示JavaScript各种语句标识符的实际应用
群发软件AIWROK条件语句实用示例智能活动推荐系统
AIWROK条件语句实用示例智能活动推荐系统
群发软件AIWROK软件示例数组方法实战应用
AIWROK软件示例数组方法实战应用
群发软件示例JavaScript的 try-catch-finally-throw用法
示例JavaScript的 try-catch-finally-throw用法
群发软件JavaScript 高级错误处理实战示例
JavaScript 高级错误处理实战示例
群发软件安卓脚本AIWROK软件示例JS函数高级用法
安卓脚本AIWROK软件示例JS函数高级用法
群发软件AIWROK环境JavaScript编码规范完整示例
AIWROK环境JavaScript编码规范完整示例
群发软件安卓脚本示例实时截图判断页面变化
安卓脚本示例实时截图判断页面变化
群发软件苹果脚本7种不同的OCR识别
苹果脚本7种不同的OCR识别
群发软件安卓脚本多变的function用法
安卓脚本多变的function用法
群发软件苹果脚本示例Config配置H5集成
苹果脚本示例Config配置H5集成
群发软件安卓脚本类型判断与Boolean对象综合示例
安卓脚本类型判断与Boolean对象综合示例
群发软件线程全局变量H5可视化控制台
线程全局变量H5可视化控制台
群发软件秒吐司快速显示和关闭的UI提示窗口
秒吐司快速显示和关闭的UI提示窗口
群发软件苹果脚本里H5 里的 window.at.callFun 示例
苹果脚本里H5 里的 window.at.callFun 示例
群发软件H5日志打印运行过程例子
H5日志打印运行过程例子
群发软件AIWROK软件字符串方法实用案例
AIWROK软件字符串方法实用案例
群发软件HID贝塞尔曲线运动控制器
HID贝塞尔曲线运动控制器
群发软件AIWROK苹果脚本sleep方法综合实战示例
AIWROK苹果脚本sleep方法综合实战示例
群发软件苹果脚本Line控件的多种创意用法和实际应用场景
苹果脚本Line控件的多种创意用法和实际应用场景
群发软件苹果脚本toast高级应用综合示例
苹果脚本toast高级应用综合示例
群发软件苹果智能OCR自动化助手
苹果智能OCR自动化助手
群发软件苹果脚本UI超快速点击示例
苹果脚本UI超快速点击示例
群发软件展示时间戳的各种复杂处理方法
展示时间戳的各种复杂处理方法
群发软件苹果脚本随机数实用示例
苹果脚本随机数实用示例
群发软件安卓手机脚本多种倒计时显示方式
安卓手机脚本多种倒计时显示方式
群发软件苹果脚本屏幕事件EVENT示例
苹果脚本屏幕事件EVENT示例
群发软件苹果脚本屏幕类screen例子
苹果脚本屏幕类screen例子

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-7-9 10:38 , Processed in 0.784362 second(s), 49 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表