快过年了,如何使用 AutoJS 自动化快速抢微信红包!
快过年了,群里一般会充斥着各种红包,你抢红包的手速怎么样呢?AutoJS 是一款 Android 端的应用软件,它可以基于无障碍服务主动或基于任务,完成一系列自动化操作
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 自动化快速抢微信红包!的更多相关文章
- 快速开发微信小程序
image.png 最近婷主在做微信小程序.自己的微信公众号也需要添加点料,乘着这次放假,把微信小程序研究了下.虽然没有做什么很强大的功能,不过好歹自己的公众号也有了微信小程序.够用即可. 1.需要先 ...
- 【技巧】如何使用客户端发布BLOG+如何快速发布微信公众号文章
[技巧]如何使用客户端发布BLOG+如何快速发布微信公众号文章 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...
- 使用python django快速搭建微信公众号后台
前言 使用python语言,django web框架,以及wechatpy,快速完成微信公众号后台服务的简易搭建,做记录于此. wechatpy是一个python的微信公众平台sdk,封装了被动消息和 ...
- python 实现 PC 客户端自动化快速入门:pywinauto !
本文转载自:http://www.lemfix.com/topics/420 一.前言 我们柠檬班的小可爱,在学完我们柠檬班自动化的课程之后,就掌握了接口自动化,web自动化,app自动化,这些工 ...
- 一、web自动化快速使用
1.什么是Selenium? selenium是一款基于web网页的UI自动化测试的框架,用来做web自动化测试 支持多浏览器操作,ie.firefox.chrome.edge.safaria ...
- Android Studio酷炫插件(一)——自动化快速实现Parcelable接口序列化
https://blog.csdn.net/kroclin/article/details/40902721 一.前言相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activit ...
- Android Studio自动化快速实现Parcelable接口序列化
1.在线安装 然后打开File -> Settings -> Pugins -> Browse Repositories 如下,输入android parcelable code g ...
- 二、web自动化快速使用
1.启动浏览器 from selenium import webdriver # 启动谷歌浏览器,依赖:先安装好chromedriver.exe驱动 # 方式1.当chrome.driver放在p ...
- 一个小时快速搭建微信小程序教程
「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的 ...
随机推荐
- spring boot集成swagger文档
pom <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifa ...
- Output of C++ Program | Set 4
Difficulty Level: Rookie Predict the output of below C++ programs. Question 1 1 #include<iostream ...
- Mave 下载与安装
一,Maven 介绍 我们在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还需要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要.Maven是当前最受欢迎 ...
- Java易错小结
String 相关运算 String使用是注意是否初始化,未初始化的全部为null.不要轻易使用 string.isEmpty()等,首先确保string非空. 推荐使用StringUtils.isN ...
- 【C/C++】BanGDream活动点数计算器
作为一个白嫖咸鱼,我每个活动都只打出三星卡就不玩了,于是写了一个模拟器,算算还要打几把hhh #include <iostream> #include <algorithm> ...
- C语言static关键字
C语言static关键字 static关键字的作用,主要从在程序的生存周期.作用域和在代码段中的位置起作用. 全局变量 静态全局变量 局部变量 静态局部量 生存周期 程序运行到结束 程序运行到结束 函 ...
- GIS应用|快速开发在线路径导航应用
导航应用可用于路径规划及仿真,并且常作为一个重要模块融入到各类企业管理业务中,如面向物流管理.商品配送.车辆监控等场景,那么如何开发一个简单的在线路径导航应用呢?SuperMap Online为您解答 ...
- 控制 Python 类的序列化过程
问题 有的类是不支持在多进程间传递的,如果非要这么做,可能会引发奇怪的现象.比如下面这段代码: from concurrent.futures import ProcessPoolExecutor, ...
- Excel.CurrentWorkbook数据源(Power Query 之 M 语言)
数据源: 任意超级表 目标: 将超级表中的数据加载到Power Query编辑器中 操作过程: 选取超级表中任意单元格(选取普通表时会自动增加插入超级表的步骤)>数据>来自表格/区域 M公 ...
- 日程表(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 Project默认打开时,在功能区下面会有一个[日程表],如果不见了,那肯定里什么时候手贱关掉的,不要紧,还可以到[视图] ...