快过年了,群里一般会充斥着各种红包,你抢红包的手速怎么样呢?AutoJS 是一款 Android 端的应用软件,它可以基于无障碍服务主动或基于任务,完成一系列自动化操作

官网:https://pro.autojs.org/

PS:由于 AutoJS Pro 对主流应用的限制,本篇文章基于 AutoJS 4.1.1 进行实现

废话不多说,下面直接讲实现过程

# 1. 准备及启动

首先,在 PC 上装 VS Code,手机上装 AutoJS 应用

PS:文末提供下载包

然后,保证电脑和手机在同一局域网,AutoJS 通过 ip 连接电脑

最后,使用 VS Code 创建一个 JS 文件,编写打开目标应用的脚本文件

//打开目标应用
//应用名称
var app_name = '**'; //打开应用
launchApp(app_name) //保持屏幕长亮
device.keepScreenOn()

# 2. 搜索红包及点击

定义一个方法,用于搜索当前群聊记录中的所有红包记录

首先,通过 id 和类名获取所有的红包元素列表

接着,遍历红包元素列表,判断红包控件是否为一个有效的红包

最后,使用 click() 方法点击红包对象,弹出抢红包对话框

//每一个红包的描述信息(自己输入)
var red_package_tag = "u1" function searchNewRedpacket() {
//通过className+id,共同查找元素
var rp_msg_list = className("android.widget.TextView").id(red_package_tag).find();
if (rp_msg_list.length != 0) {
log("检测到的红包个数: " + rp_msg_list.length); //遍历红包对象
for (var i = 0; i < rp_msg_list.length; i++) {
var rp_u1 = rp_msg_list[i];
var rp_u1_parent = rp_u1.parent()
// 判断是否为一个【有效红包】
if (rp_u1_parent != null && rp_u1_parent.childCount() == 1) {
log("发现新红包,准备开抢。。。");
//通过元素的坐标去点击
click(rp_u1.bounds().centerX(), rp_u1.bounds().centerY())
log("恭喜!抢到一个红包。。。。")
} else {
log("无效红包。。。")
}
}
} else if (rp_msg_list.empty()) {
//元素列表为空
log("未检测到红包消息" + rp_msg_list.length);
} else {
return;
}
}

# 3. 抢红包

定义一个方法,用于抢红包

PS:这里需要过滤过期类的红包

//打开红包开抢
function openNewRedPacket() {
//通过desc描述找到元素
var draw = desc("开").findOne(500);
if (draw != null) {
draw.click();
} else {
log("过期之类无效红包");
}
}

# 4. 循环及异常处理

定义一个方法,用于处理下面 3 种页面,保证遇到异常或操作完成后,立即返回到聊天页面

//返回到上一页
function back_page() {
//红包抢完了(对话框)
var red_end = id("f4b").textContains("手慢了,红包派完了").findOnce()
if (red_end) {
log("返回一")
back()
}
//红包领取页面--自己抢到
var red_fp = desc("已存入零钱,可直接提现").findOnce()
if (red_fp) {
log("返回二")
back()
} //红包领取页面--被别人抢光
var red_other = id("eyx").textContains("被抢光").findOnce()
if (red_other) {
log("返回三")
back()
}
}

# 5. 线程加速

上面定义了 3 个方法,我这里将他们放到 3 个线程中异步执行,提升执行效率

//线程一:点击红包进入
threads.start(function () {
//在新线程执行的代码(子线程)
while (true) {
//寻找红包,并进入
searchNewRedpacket()
}
}); //线程二:点击【开】按钮)
threads.start(function () {
while (true) {
openNewRedPacket();
}
}) //线程三:如果红包抢完、抢到,马上返回
threads.start(function () {
while (true) {
back_page()
}
})

# 6. 总结一下

相比传统的自动化操作,加入多线程分工操作,可以更快地运行自动化去抢红包

我已将文中所有源码上传到下方公众号后台,关注公众号「 煎蛋搞钱」后回复关键字「 qhb」即可以获取

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

快过年了,如何使用 AutoJS 自动化快速抢微信红包!的更多相关文章

  1. 快速开发微信小程序

    image.png 最近婷主在做微信小程序.自己的微信公众号也需要添加点料,乘着这次放假,把微信小程序研究了下.虽然没有做什么很强大的功能,不过好歹自己的公众号也有了微信小程序.够用即可. 1.需要先 ...

  2. 【技巧】如何使用客户端发布BLOG+如何快速发布微信公众号文章

    [技巧]如何使用客户端发布BLOG+如何快速发布微信公众号文章   1  BLOG文档结构图     2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...

  3. 使用python django快速搭建微信公众号后台

    前言 使用python语言,django web框架,以及wechatpy,快速完成微信公众号后台服务的简易搭建,做记录于此. wechatpy是一个python的微信公众平台sdk,封装了被动消息和 ...

  4. python 实现 PC 客户端自动化快速入门:pywinauto !

    本文转载自:http://www.lemfix.com/topics/420 一.前言 ​ 我们柠檬班的小可爱,在学完我们柠檬班自动化的课程之后,就掌握了接口自动化,web自动化,app自动化,这些工 ...

  5. 一、web自动化快速使用

        1.什么是Selenium? selenium是一款基于web网页的UI自动化测试的框架,用来做web自动化测试 支持多浏览器操作,ie.firefox.chrome.edge.safaria ...

  6. Android Studio酷炫插件(一)——自动化快速实现Parcelable接口序列化

    https://blog.csdn.net/kroclin/article/details/40902721 一.前言相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activit ...

  7. Android Studio自动化快速实现Parcelable接口序列化

    1.在线安装 然后打开File -> Settings -> Pugins -> Browse Repositories 如下,输入android parcelable code g ...

  8. 二、web自动化快速使用

      1.启动浏览器 from selenium import webdriver # 启动谷歌浏览器,依赖:先安装好chromedriver.exe驱动 # 方式1.当chrome.driver放在p ...

  9. 一个小时快速搭建微信小程序教程

    「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的 ...

随机推荐

  1. Orcale 数据加载

    CSV 逗号分隔值格式文件 1,若要加载的文件不是CSV格式,可以修改数据文件,用分隔符来替换逗号:也可以修改控制文件,将FIELDS TERMINATED BY的值改为实际的分隔符. eg, 要向s ...

  2. my43_mysql内存相关概念

    相关参数 read_buffer_size https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_re ...

  3. 注册页面的servlet

    package cn.itcast.travel.web.servlet;import cn.itcast.travel.domain.ResultInfo;import cn.itcast.trav ...

  4. Vector Bin Packing 华为讲座笔记

    Vector bin packing:first fit / best fit / grasp 成本:性价比 (先验) 设计评价函数: evaluation function:cosine simil ...

  5. Linkerd Service Mesh 授权策略(Server & ServerAuthorization)

    简介 Server 和 ServerAuthorization 是 Linkerd 中的两种策略资源, 用于控制对 mesh 应用程序的入站访问. 在 linkerd 安装期间,policyContr ...

  6. 跨平台调用之WebService

    一.简介 web service是一种跨编程语言和跨操作系统平台的远程调用技术,是基于网络的.分布式的模块化组件. 跨编程语言就是说服务器端程序采用 Java 编写,客户端程序则可以采用其他编程语言编 ...

  7. Python的安装和卸载

    一.Python的安装,去Python官网https://www.python.org/downloads/下载对应安装包 进入官网后鼠标移动到downloads处然后点击Windows 二.安装包下 ...

  8. 图数据库HugeGraph:HugeGraph-Hubble基于Web的可视化图管理初体验

    原创/朱季谦 一.HugeGraph-Hubble简介 关于HugeGraph,官方资料是这样介绍的,它是一款易用.高效.通用的开源图数据库系统(Graph Database), 实现了 Apache ...

  9. 听听文档(视频)-Power Pivot

    打开微信扫描二维码

  10. LuoguP7534 [COCI2016-2017#4] Kartomat 题解

    Content 火车站里头有一个售票机,其键盘可以看作是一个 \(4\times 8\) 的矩阵,其中第一行的前面三个键和最后一行的最后三个键都是 *,剩余的键按照从上到下,从左到右的顺序依次按照 A ...