分享

autojs无障碍权限脚本引擎写的QQ群聊发送消息和转发消息源代码

 看见就非常 2020-11-04

说明

本文提供的代码仅供参考。不建议用于生产环境。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。

Auto.js简介

Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。

Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。

开发文档

Auto.js Pro开发文档
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。

为什么要使用Auto.js Pro开发脚本,有什么特点?

吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:

  • Auto.js Pro能开发免ROOT的安卓脚本
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
  • Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
  • Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
  • Auto.js Pro的命令库非常的丰富,接口比较多
  • Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告

推荐教程

Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p)

示例代码

//此代码由飞云脚本圈整理提供(www.)
var kind=dialogs.select("选择模式",["单独图片/单独文件","图片及文件"]);
var times=dialogs.rawInput("转发次数");
launchApp("QQ");
sleep(3000);
toast("即将开始 请发送 Start 至对话好友");
id("chat_item_content_layout").text("Start").waitFor();
switch(kind){
  case 0:
   var finish=0;
   var file=1;
var swi=0;
var swip=0;
var clicka=0;
var sn=0;
var number=id("chat_item_content_layout").find().size();  
var num=number;//位置
   while(finish<times){
       if(id("chat_item_content_layout").exists()){
          var nu=id("chat_item_content_layout").find().size();
          //alert(nu);
          var nnn=nu-2;
var chat_id=id("chat_item_content_layout").find().get(nnn);
var cenx=chat_id.bounds().centerX();
var ceny=chat_id.bounds().centerY();
longClick(cenx,ceny);
sleep(300);
desc("转发").findOne().click();
//var objects=files.read("/sdcard/QQqun/No." + file+".txt");
sleep(500);
text("选择群聊").waitFor();
id("name").text("选择群聊").findOne().click();
sleep(500);
var nm=id("text1").find().size();
if(clicka==nm){
    clicka=0;
    swip=swip+1;
    swi=swi+1;}
    sleep(200);
    while(sn<swip){
           
    swipe(450,1910,450,230,200);
    sn++}
        sn=0;
var areaa=id("text1").find().get(clicka).bounds();
var cenxd=areaa.centerX();
var cenyd=areaa.centerY();
click(cenxd,cenyd);
sleep(300);
if(textContains("发送给 ").exists()){
id("dialogRightBtn").desc("发送").findOne().click();}
sleep(500);
clicka=clicka+1;
file=file+1;}
finish++}

break;
case 1:
   var finish=0;
   var file=1;
   var swi=0;
var swip=0;
var clicka=0;
var sn=0;
   while(finish<times){
if(id("chat_item_content_layout").exists()){
          var nu=id("chat_item_content_layout").find().size();
          //alert(nu);
          var num=nu-3;
          var nnn=nu-2;
var chat_id=id("chat_item_content_layout").find().get(nnn);
var cenx=chat_id.bounds().centerX();
var ceny=chat_id.bounds().centerY();
longClick(cenx,ceny);
sleep(300);
desc("转发").findOne().click();
//var objects=files.read("/sdcard/QQqun/No." + file+".txt");
sleep(300);
text("选择群聊").waitFor();
id("name").text("选择群聊").findOne().click();
sleep(500);
var nm=id("text1").find().size();
if(clicka==nm){
    clicka=0;
    swip=swip+1;}
    sleep(300);
    while(sn<swip){
           
    swipe(450,1910,450,230,200);
    sn++}
        sn=0;
var areaa=id("text1").find().get(clicka).bounds();
var cenxd=areaa.centerX();
var cenyd=areaa.centerY();
click(cenxd,cenyd);
sleep(500);
if(textContains("发送给 ").exists()){
id("dialogRightBtn").desc("发送").findOne().click();}
sleep(300);
/
var chat_idb=id("chat_item_content_layout").find().get(num);
var cenxb=chat_idb.bounds().centerX();
var cenyb=chat_idb.bounds().centerY();
longClick(cenxb,cenyb);
sleep(300);
desc("转发").findOne().click();
//var objects=files.read("/sdcard/QQqun/No." + file+".txt");
sleep(300);
text("选择群聊").waitFor();
id("name").text("选择群聊").findOne().click();
sleep(500);
sleep(300);
var areaab=id("text1").find().get(clicka).bounds();
var cenxdb=areaab.centerX();
var cenydb=areaab.centerY();
click(cenxdb,cenydb);
sleep(500);
if(textContains("发送给 ").exists()){
id("dialogRightBtn").desc("发送").findOne().click();}
sleep(500);
clicka=clicka+1;
file=file+1;}
finish++}
break;}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多