├── 结束所有后台进程.js
├── README.md
├── 001-Hello JS.js
├── 无限上滑.js
├── 抓取logcat日志.js
├── 无限下滑.js
├── 测试.js
├── 文本操作.js
├── leimu.js
├── 安装于卸载.js
├── 消除QQ消息小红点(注:仅限QQ,轻聊版与tim不行).js
├── 绿色(2).js
├── 004-循环for.js
├── Base64(1).js
├── main(13).js
├── main(3).js
├── main(5).js
├── .gitattributes
├── 定时运行(精确到秒).js
├── 返当前路径.js
├── 005-循环while.js
├── 微信扫一扫.js
├── 无限循环点击(无障碍服务).js
├── [Http代理] 讯代理_优质代理.js
├── click控件获取坐标位置.js
├── 怼人神器核心脚本.js
├── 截图释放.js
├── 淘宝 内打开网页.js
├── 连点器.js
├── 99乘法表.js
├── 强制停止应用.js
├── 点击左上角.js
├── 抖音自动点赞.js
├── QQ开锁.js
├── 微信删好友脚本.js
├── 包。.js
├── 微信删好友脚本(1).js
├── 数组填充(1).js
├── 下拉刷新+上滑.js
├── 如何被调用函数.js
├── 一言.js
├── 点.js
├── 判断屏幕方向是横屏还是竖屏.js
├── 微信一键已读.js
├── 正则匹配手机号.js
├── zip解压.js
├── 003-循环break.js
├── 重复点击同一位置.js
├── 异常2.js
├── 新浪微博 签到红包.js
├── ROOT权限启动无障碍服务.js
├── 确认框.js
├── 获取app安装时间.js
├── 计数器.js
├── json格式化.js
├── ?提取所有text.js
├── vscode连接不上手机解决办法.js
├── 取消小米短信收藏.js
├── 双指捏合.js
├── 写入文本文件.js
├── 循环发送消息(2).js
├── test(4).js
├── 002-if条件.js
├── 判断屏幕是否锁定.js
├── QQ刷一刷(1).js
├── main(1)(2).js
├── 取消金豆.js
├── 查询app包名.js
├── 狼人杀守房脚本.js
├── 运行新的脚本任务.js
├── ss.js
├── 卸载应用.js
├── 这是一个没用的脚本.js
├── main(7).js
├── 支付宝打赏.js
├── 百度摇一摇.js
├── 外网ip.js
├── 8.0打开关闭网络usb共享.js
├── qq轰炸机(1).js
├── 微信直接跳转扫一扫.js
├── 三指捏合.js
├── 控制台获取指针位置.js
├── 支付宝输入密码.js
├── main(1)(3).js
├── 全屏页面.js
├── 发射广播.js
├── 循环发送消息.js
├── 微信取消订阅号关注.js
├── 刷屏金箍棒.js
├── 循环发送消息(1).js
├── 数组填充.js
├── 叠猫逛店铺(纯手工循环脚本).js
├── 检测网络是否可用.js
├── 秒抢公示-1080-2340(1).js
├── 给脚本1发消息.js
├── QQ头像反转.js
├── 动态添加控件.js
├── 测试(退群).js
├── 范围随机选点(防检测).js
├── 气场测试(正值越大越好).js
├── 刷屏(1).js
├── DensityUtil.js
├── ui中的延时除了多线程有别的办法吗.js
├── LZ动作.js
├── QQ一键签到.js
├── QQ消息列表清扫器.js
├── 注册成功.js
├── 跳过软件启动页广告思路.js
├── 逗你玩.js
├── 三指下滑.js
├── 全局半透明背景(1).js
├── QQ消息悬浮显示.js
├── QQ自动抢红包(没卵用).js
├── 控件批量生成.js
├── 武炼巅峰qq刷屏.js
├── 获取手机背景.js
├── QQ分享文本消息.js
├── patch.js
├── 停止运行(3).js
├── 判断视频播放状态.js
├── 抖音关注.js
├── 播放系统提示音.js
├── 别再弹开启悬浮款了.js
├── 随机打乱数组顺序.js
├── config.js
├── 微信消息列表清扫.js
├── 高级输入法.js
├── 00-通知相册.js
├── 无限震动.js
├── 自动获取安卓高清壁纸.js
├── press点击控件.js
├── qq头像反转(1).js
├── 数字比拼辅助.js
├── 点击复制.js
├── 监听手机接听电话响铃.js
├── 网页打包.js
├── 一加手机打开指针位置.js
├── 强制停止应用(1).js
├── 酷安互相关注.js
├── 微信自动删好友.js
├── 王者荣耀循环挑战一个脚本.js
├── UI切换.js
├── shell开关飞行模式.js
├── 【刷宝】.js
├── 按钮平分.js
├── 颜色反转(副本).js
├── ui多界面.js
├── 好友列表点谁赞谁.js
├── 调用悬浮窗显示布局范围.js
├── long.js
├── qq临时聊天(2).js
├── 判断字符第x次时的位置.js
├── 调用相机并保存至指定路径(1).js
├── 调用相机并保存至指定路径.js
├── ?提取text和desc.js
├── QQ分享文本消息修正.js
├── 保存测试.js
├── 全局半透明背景.js
├── 按下键停止脚本运行.js
├── 无聊作品 Z字解锁大法.js
├── 自杀.js
├── rawWindow求解.js
├── 微信批量加附近人.js
├── 调用系统相机并保存图片.js
├── XPOSED自动设置.js
├── 图片加文字.js
├── 检查更新脚本.js
├── 全屏显示背景图.js
├── 改变toast位置(1).js
├── 朋友圈点赞.js
├── !微信朋友圈点赞.js
├── 1.js
├── WebViewClient的使用方法.js
├── spinner例子.js
├── 别踩白块2.js
├── 小米WIFI链.js
├── 百度网盘bsd获取.js
├── 禁止脚本多次运行.js
├── 贴吧签到.js
├── 钉钉打卡页面.js
├── QQ互赞脚本.js
├── QQ点啧js 逸.js
├── canvas画正方形.js
├── 区域找图.js
├── 切换IP.js
├── 随机生成手机号.js
├── QQ清除好友聊天字体.js
├── match的实践.js
├── 小心闪瞎你的眼.js
├── 改变toast位置.js
├── 获取QQ空间说说内容.js
├── 邮箱(测试)(1).js
├── QQ循环发送图片.js
├── js进阶教程02.js
├── qq循环发送图片(2).js
├── 一个一个输入数字.js
├── Minecraft BE 自动钓鱼.js
├── QQ点赞(2).js
├── qq名片点赞脚本.js
├── 批量删除微信好友.js
├── 模板字符串.js
├── SMSCODE.js
├── qq喷子.js
├── 超级简单的人工智能.js
├── 停止除了自身的脚本.js
├── 快手一键删全部关注.js
├── 刷宝初级.js
├── 微信点赞.js
├── 惠头条(1).js
├── 中青看点视频.js
├── 搞你.js
├── webScript.js
├── 续.js
├── 心形手势.js
├── 手机卡死.js
├── 输入框光标.js
├── 随机数.js
├── windowFlag.js
├── 花屏.js
├── 0根据图色点击.js
├── qq图片反转.js
├── 生成脚本测试信息.js
├── 占用空间.js
├── ?滑行判断.js
├── gpsui.js
├── installInfo.js
├── 多指同时点击.js
├── 获取手机背 景.js
├── 视觉干扰神器(记忆力增强).js
├── 00-读取txt文本每一行&去空格.js
├── 清空酷安动态.js
├── 直接打开开发者模式.js
├── 保存控件状态.js
├── 别白块.js
├── 发短信.js
├── 无限刷红包.js
├── 本地时间及网络时间验证.js
├── 1查询本机IP地理位置.js
├── 漂流瓶自动回复.js
├── 刷趣头条首页.js
├── 成语词典.js
├── 找茬微信半自动.js
├── adb5037常用命令.js
├── 心形手势(1).js
├── 火云获取手机号码.js
├── 1箭头函数和function的this对比.js
├── 判断联网类型.js
├── 文件夹大小函数(1).js
├── 聊天机器人清爽版.js
├── 调整和获取手机音量.js
├── 实时显示脚本运行时长.js
├── http超时返回null.js
├── 判断网络类型.js
├── 文件夹大小函数.js
├── 最新安装的app.js
├── 二维码识别(2).js
├── QQ数字刷屏1-100.js
├── QQ空间点赞(2).js
├── auto.js无root取短信.js
├── 妈妈就在身边.js
├── Switch控件.js
├── qq顺序点赞脚本.js
├── 图片二维码识别.js
├── tt.js
├── 测试截图.js
├── 查询本机IP地理位置.js
├── 百度翻译[中转英](1).js
├── 语音识别.js
├── 判断联网类型(1).js
├── 双击返回退出的ui.js
├── 截图水印.js
├── 指针位置_意图.js
├── 直线和圆交点.js.js
├── listView勾选框丢了怎么解决.js
├── 打印广播Intent信息.js
├── 批量删除留言.js
├── hello语音刷房脚本(雷电).js
├── 发送通知(3).js
├── 只同时运行一个脚本.js
├── 截图水印(1).js
├── 单例模式.js
├── 微信红包通知监听.js
├── 提取广播数据.js
├── QQ群签到.js
├── 百度翻译[中转英].js
├── 计时.js
├── autojs开启无障碍.js
├── 员工福利分享.js
├── 屏幕唤醒.js
├── 界面属性.js
├── 脚本收藏合集.js
├── QQ打开聊天窗口.js
├── 手机QQ好友动态自动.js
├── 花屏(2).js
├── js块级作用域.js
├── 获取app图标1.js
├── 钉钉自动打卡-解锁2.js
├── 取关全部公众号.js
├── 诊断数据收集.js
├── QQ自动评论(联网版).js
├── 快来签到吧.js
├── 读写@data目录文件.js
├── HAHA小视频无限撸money(无解说).js
├── QQ红包.js
├── 伪监听屏幕旋转.js
├── 强制聊天脚本.js
├── 最大公约数.js
├── 微信搜索框输入消息.js
├── te.js
├── 打开指针.js
├── 获取设备信息.js
├── 读取保存界面配置接口.js
├── 静音或恢复音量.js
├── 写脚本--控件信息自动重命名.js
├── activity.js
├── 子线程与主线程逻辑.js
├── 1求交集.js
├── 华为解锁(1).js
├── 广告群自动抢楼.js
├── 悬浮窗文本追加内容并滚动至末尾.js
├── 显示时间日期.js
├── 界面示例-登录.js
├── 取关.js
├── 脚本文件夹(2).js
├── 音量上下键同时按控制.js
├── 广播(电量)(2).js
├── 百度知道.js
├── 足艺阁爬图脚本试用版.js
├── ui选择文件.js
├── 继续.js
├── QQ刷一刷改了.js
├── 发送一个空的QQ空间红包.js
├── 求差集.js
├── 点击试验文件.js
├── 中括号数量问题2.js
├── Fermat素性测试.js
├── QQ强制聊天.js
├── 上滑方式.js
├── QQ自动评论(联网版)(1).js
├── XYWH量取器简易版.js
├── 微信朋友分享.js
├── 录音最原始版本.js
├── exec的实践.js
├── 心形手势(2)(1).js
├── 戳一戳.js
├── 百度文字识别(自动获取token).js
├── QQ清除好友聊天字体ok.js
├── 兼容安卓6、7的写法.js
├── 贴吧秒刷搜索排名.js
├── 马什么梅.js
├── !绿色守护-结束应用.js
├── 只点赞好友.js
├── 读短信 10条.js
├── 饿了么签到.js
├── autoGetCatCoin.js
├── qq批量建群(不完美).js
├── 00-读&删指定文本行.js
├── QQ名片点赞(只点赞好友).js
├── QQ语音.js
├── 应用工具.js
├── 悬浮窗下拉框.js
├── 获取通讯录.js
├── js进阶教程03.js
├── 群签到(请手动打开脚本修改需要签到的群号).js
├── UI验证码(有BUG).js
├── 在ui中使用悬浮窗demo.js
├── 一键运行脚本v3.js
├── 沙雕网友.js
├── QQ点赞.js
├── 手机号码归属地查询.js
├── 格式化 Key.js
├── QQ删除说说.js
├── 停止给定名字脚本StopEngine.js
├── 单选按钮demo.js
├── 多线程.js
├── 循环点击.js
├── AJ-网易云签到.js
├── 净化术(1).js
├── 动态显示隐藏布局.js
├── 手电(简陋版).js
├── 无障碍测试.js
├── 1别踩白块.js
└── shuabaoviod.js
/结束所有后台进程.js:
--------------------------------------------------------------------------------
1 | shell("am kill-all", true);
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AutoJsCode
2 | 自己收集的autojs的代码,做备份
3 |
--------------------------------------------------------------------------------
/001-Hello JS.js:
--------------------------------------------------------------------------------
1 | //显示“Hello JS”
2 | toast("Hello JS");
3 |
--------------------------------------------------------------------------------
/无限上滑.js:
--------------------------------------------------------------------------------
1 | while(true){
2 | scrollUp();
3 | sleep(1000);
4 | }
--------------------------------------------------------------------------------
/抓取logcat日志.js:
--------------------------------------------------------------------------------
1 | new Shell().exec("logcat -f /sdcard/脚本/log.txt");
--------------------------------------------------------------------------------
/无限下滑.js:
--------------------------------------------------------------------------------
1 | while(true){
2 | scrollDown();
3 | sleep(1000);
4 | }
--------------------------------------------------------------------------------
/测试.js:
--------------------------------------------------------------------------------
1 | for( let i=0;i<100;i++)
2 | log(Math.ceil(Math.random()*100));
--------------------------------------------------------------------------------
/文本操作.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/文本操作.js
--------------------------------------------------------------------------------
/leimu.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/leimu.js
--------------------------------------------------------------------------------
/安装于卸载.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/安装于卸载.js
--------------------------------------------------------------------------------
/消除QQ消息小红点(注:仅限QQ,轻聊版与tim不行).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | swipe(134,1133,134,799,5000);
--------------------------------------------------------------------------------
/绿色(2).js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/绿色(2).js
--------------------------------------------------------------------------------
/004-循环for.js:
--------------------------------------------------------------------------------
1 | //循环10显示
2 | for(i=0;i<10;i++)
3 | {
4 | toast("Hello JS");
5 | }
6 |
--------------------------------------------------------------------------------
/Base64(1).js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/Base64(1).js
--------------------------------------------------------------------------------
/main(13).js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/main(13).js
--------------------------------------------------------------------------------
/main(3).js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/main(3).js
--------------------------------------------------------------------------------
/main(5).js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/main(5).js
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/定时运行(精确到秒).js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/定时运行(精确到秒).js
--------------------------------------------------------------------------------
/返当前路径.js:
--------------------------------------------------------------------------------
1 | log(Math.round(new Date("2019/4/10")))
2 |
3 | alert(files.path("返回当前路径.js"));
--------------------------------------------------------------------------------
/005-循环while.js:
--------------------------------------------------------------------------------
1 | var i=0;
2 | while(i<10)
3 | {
4 | toast("Hello world");
5 | i++;
6 | }
7 |
--------------------------------------------------------------------------------
/微信扫一扫.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | launch("com.tencent.mm");
3 | while(!click("发现"));
4 | while(!click("扫一扫"));
--------------------------------------------------------------------------------
/无限循环点击(无障碍服务).js:
--------------------------------------------------------------------------------
1 | auto();
2 | while(true){
3 | click(x,y);//x,y是坐标
4 | sleep(500);
5 | }
--------------------------------------------------------------------------------
/[Http代理] 讯代理_优质代理.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xiaorui16888/AutoJsCode/HEAD/[Http代理] 讯代理_优质代理.js
--------------------------------------------------------------------------------
/click控件获取坐标位置.js:
--------------------------------------------------------------------------------
1 | sleep(3000);
2 | var e =id("run").findOne().bounds();
3 | click(e.centerX(),e.centerY());
--------------------------------------------------------------------------------
/怼人神器核心脚本.js:
--------------------------------------------------------------------------------
1 | while(true){
2 | input("傻逼");
3 | var sendButton = text("发送").findOne(); sendButton.click();
4 | }
--------------------------------------------------------------------------------
/截图释放.js:
--------------------------------------------------------------------------------
1 | requestScreenCapture();
2 | sleep(1000);
3 | runtime.getImages().releaseScreenCapturer();
4 | sleep(3000);
--------------------------------------------------------------------------------
/淘宝 内打开网页.js:
--------------------------------------------------------------------------------
1 | app.startActivity({
2 | action: "android.intent.action.VIEW",
3 | data: "taobao://hitow.net"
4 | });
--------------------------------------------------------------------------------
/连点器.js:
--------------------------------------------------------------------------------
1 | //循环100次
2 | for(var i = 0; i < 100; i++){
3 | //点击位置(500, 1000), 每次用时1毫秒
4 | press(527, 880, 1);
5 |
6 | }
--------------------------------------------------------------------------------
/99乘法表.js:
--------------------------------------------------------------------------------
1 | for(var i=1; i<10;i++){
2 | for(var j=1; j<10;j++){
3 | alert(j+"*"+i+"="+ j*i);
4 | }
5 | }p
--------------------------------------------------------------------------------
/强制停止应用.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | var appName = rawInput("请输入应用名称");
4 | openAppSetting(getPackageName(appName));
5 | while(!click("强制停止"));
--------------------------------------------------------------------------------
/点击左上角.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | setScreenMetrics(1080, 1920);
4 |
5 | while(true){
6 | click(500, 1900);
7 | sleep(30000)
8 | }
--------------------------------------------------------------------------------
/抖音自动点赞.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | while(1){
3 | var a = id("acj").selected(false).findOne();
4 | a.parent().click();
5 | }
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/QQ开锁.js:
--------------------------------------------------------------------------------
1 | launchApp("QQ")
2 | sleep(3000)
3 | gesture(2000, [560, 1000], [290, 1300],[550,1300],[300,1600],[800,1000],[560,1600],[800,1300])
4 |
--------------------------------------------------------------------------------
/微信删好友脚本.js:
--------------------------------------------------------------------------------
1 | toast("在好友列表中点谁删谁");
2 | while(true){
3 | while(!desc("更多").click());
4 | while(!click("删除"));
5 | // while(!click("删除"));
6 | }
--------------------------------------------------------------------------------
/包。.js:
--------------------------------------------------------------------------------
1 | setScreenMetrics(1080, 1920);
2 |
3 | launchApp ("易出行")
4 | sleep(9000)
5 | setInterval()(
6 | id("footer_two").findOne().click()
7 | )
8 |
--------------------------------------------------------------------------------
/微信删好友脚本(1).js:
--------------------------------------------------------------------------------
1 | toast("在好友列表中点谁删谁");
2 | while(true){
3 | while(!desc("更多").click());
4 | while(!click("删除"));
5 | while(!click("删除"));
6 | }
--------------------------------------------------------------------------------
/数组填充(1).js:
--------------------------------------------------------------------------------
1 | let n = 1024 * 1024;
2 | let arr = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, n);
3 | java.util.Arrays.fill(arr, 50);
4 |
--------------------------------------------------------------------------------
/下拉刷新+上滑.js:
--------------------------------------------------------------------------------
1 | "auto"
2 | //下拉刷新+上滑,ps:可以用来找聊天记录
3 | while(true){
4 | scrollUp();
5 | scrollUp();
6 | swipe(500,300,500,1000,2000);
7 | sleep(2300);}
--------------------------------------------------------------------------------
/如何被调用函数.js:
--------------------------------------------------------------------------------
1 | function addFunc(a,b){
2 | return a+b;
3 | }
4 |
5 | function multiplyFunc(a,b){
6 | return a*b;
7 | }
8 |
9 | //toastLog(addFunc(1,1));
--------------------------------------------------------------------------------
/一言.js:
--------------------------------------------------------------------------------
1 | var url = "https://v1.hitokoto.cn/";
2 | var res = http.get(url);
3 | if(res.statusCode == 200){
4 | console.show();
5 | log(res.body.string());
6 | }
--------------------------------------------------------------------------------
/点.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | setScreenMetrics(1080, 1920);
3 | for(var i = 0; i = 100; i++){
4 | press(540, 1600, 1);
5 | press(530, 1600, 1);
6 | press(550, 1600, 1);
7 | }
--------------------------------------------------------------------------------
/判断屏幕方向是横屏还是竖屏.js:
--------------------------------------------------------------------------------
1 | var a = (context.resources.configuration.orientation);
2 | if (a === 1) {
3 | toastLog("这是竖屏!!");
4 | } else {
5 | toastLog("这是横屏!!");
6 | }
--------------------------------------------------------------------------------
/微信一键已读.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | while(true){
4 | if(id("i4").untilFindOne().parent().parent().click()){
5 | sleep(700);
6 | id("gf").click();
7 | }
8 | }
--------------------------------------------------------------------------------
/正则匹配手机号.js:
--------------------------------------------------------------------------------
1 | console.show()
2 | var 文本="13123456789 (北京北京)"
3 | var 手机号 = 文本.match("(\\d{11})")
4 | var 地区 = 文本.match("([\u4e00-\u9fa5]+)")
5 | log(手机号[1])
6 | log(地区[1])
--------------------------------------------------------------------------------
/zip解压.js:
--------------------------------------------------------------------------------
1 | importPackage(Packages.net.lingala.zip4j.core);
2 |
3 | let 压缩包 = "/sdcard/test.zip";
4 | let 解压目录 = "/sdcard/test";
5 |
6 | new ZipFile(压缩包).extractAll(解压目录);
--------------------------------------------------------------------------------
/003-循环break.js:
--------------------------------------------------------------------------------
1 | var q=0;
2 | while(true)
3 | {
4 | q++;
5 | toast("我在循环内");
6 | if(q==5)
7 | {
8 | break;
9 | toast("我不会被执行");
10 | }
11 | }
12 | toast("我在循环外");
13 |
--------------------------------------------------------------------------------
/重复点击同一位置.js:
--------------------------------------------------------------------------------
1 | for (var a = 1; a < 50; a++) {
2 | sleep(1000)
3 |
4 | //连续点击50次这个位置
5 | click(48, 258, 1032, 426)
6 | //位置/次数/自己改
7 |
8 |
9 |
10 |
11 | }
--------------------------------------------------------------------------------
/异常2.js:
--------------------------------------------------------------------------------
1 | let en = engines.myEngine();
2 | let arr = engines.all();
3 |
4 | for (let i = 0; i < arr.length; i++) {
5 | toastLog(arr[i] == en); //为什么输出全是false
6 | }
7 | sleep(5000);
--------------------------------------------------------------------------------
/新浪微博 签到红包.js:
--------------------------------------------------------------------------------
1 | //未找到页面,等高手补充
2 |
3 | app.startActivity({
4 | action: "android.intent.action.VIEW",
5 | data: "sinaweibo://detail?mblogid=4183551610164144&luicode=20000061"
6 | });
--------------------------------------------------------------------------------
/ROOT权限启动无障碍服务.js:
--------------------------------------------------------------------------------
1 | var pref = android.preference.PreferenceManager.getDefaultSharedPreferences(context);
2 | pref.edit().putBoolean("key_enable_accessibility_service_by_root", true).commit();
--------------------------------------------------------------------------------
/确认框.js:
--------------------------------------------------------------------------------
1 | var handsome = confirm("你帅吗?");
2 | if(handsome){
3 | toast("真不要脸!");
4 | toast("真不要脸!");
5 | toast("真不要脸!");
6 | alert("真不要脸!");
7 | }else{
8 | toast("嗯");
9 | }
--------------------------------------------------------------------------------
/获取app安装时间.js:
--------------------------------------------------------------------------------
1 | importClass(android.content.pm.PackageManager)
2 | installed = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime
3 | log(installed)
4 |
--------------------------------------------------------------------------------
/计数器.js:
--------------------------------------------------------------------------------
1 | var count = function () {
2 | var count = 0
3 | return function () {
4 | return count++;
5 | }
6 | }()
7 | for (var i = 0; i < 10; i++) {
8 | log(count())
9 | }
10 |
--------------------------------------------------------------------------------
/json格式化.js:
--------------------------------------------------------------------------------
1 | // by Mannix
2 | // date 6-13-2019
3 | var path = "/sdcard/脚本/中文笔画数据.json";
4 | var json = JSON.parse(files.read(path));
5 | files.write(path+".json",JSON.stringify(json, null, 4))
6 |
--------------------------------------------------------------------------------
/?提取所有text.js:
--------------------------------------------------------------------------------
1 | var bao = currentPackage();
2 | var i = packageName(bao).find();
3 | for (l = 0; l < i.length; l++) {
4 | if (i[l].text() != "") {
5 | log(i[l].text());
6 | };
7 | };
--------------------------------------------------------------------------------
/vscode连接不上手机解决办法.js:
--------------------------------------------------------------------------------
1 | vscode连接不上手机
2 | 1 关闭电脑防火墙
3 | 2 检查是否同一wifi
4 | 3 检查电脑或手机是否使用了代理
5 | 4 关闭xx手机助手和fiddler 查尔斯等软件
6 | 5 检查ip是否输入正确
7 | 6 检查vscode是否开启了服务 start server
8 | 7 用手机的热点连接试一下
9 | 8 有缘无分,好聚好散
--------------------------------------------------------------------------------
/取消小米短信收藏.js:
--------------------------------------------------------------------------------
1 | sleep(5000)
2 | while(true){
3 | var submit=id("message_body").findOne().bounds()
4 | click(submit.centerX() , submit.centerY())
5 | while(!click("取消收藏"));
6 | while(!click("确定"));
7 | }
--------------------------------------------------------------------------------
/双指捏合.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | setScreenMetrics(1080, 1920);
4 |
5 | //如果你使用的是MIUI,此脚本运行后会出现桌面编辑
6 | home();
7 | sleep(1500);
8 | gestures([500, [800, 300], [500, 1000]],
9 | [500, [300, 1500], [500, 1000]]);
--------------------------------------------------------------------------------
/写入文本文件.js:
--------------------------------------------------------------------------------
1 | //文件路径
2 | var path = "/sdcard/1.txt";
3 | //要写入的文件内容
4 | var text = "Hello, AutoJs";
5 | //以写入模式打开文件
6 | var file = open(path, "w");
7 | //写入文件
8 | file.write(text);
9 | //关闭文件
10 | file.close();
--------------------------------------------------------------------------------
/循环发送消息(2).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 |
4 | toast("请打开一个聊天窗口");
5 | sleep(500);
6 |
7 | while(true){
8 | setText("💙扩列+\n💚交友+\n💜互赞+\n❤网恋+\n💗↓QQ↓\n2918180172");
9 | click("发送");
10 | sleep(30);
11 | }
--------------------------------------------------------------------------------
/test(4).js:
--------------------------------------------------------------------------------
1 | dex= files.path("/sdcard/test.dex");
2 | runtime.loadDex(dex);
3 | importPackage(com.mycompany.myapp);
4 | a=new test();
5 | log(a.tet())
6 | a.toast(context);
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/002-if条件.js:
--------------------------------------------------------------------------------
1 | var num = 10; //定义num等于10
2 | if (num == 10) {
3 | //英语渣莫急,你可以把他改成任意中文,只要能分清是哪一个输出的就行了
4 | toast("数字是10");
5 | } else if (num == 8) {
6 | toast("数字是8");
7 | } else {
8 | toast("这个数既不是10也不是8");
9 | }
--------------------------------------------------------------------------------
/判断屏幕是否锁定.js:
--------------------------------------------------------------------------------
1 | // 判断屏幕是否锁定
2 | // 返回 true 表示锁定
3 | //此代码由飞云脚本圈www.feiyunjs.com整理提供
4 | function isScreenLocked() {
5 | let km = context.getSystemService("keyguard");
6 | return km.inKeyguardRestrictedInputMode();
7 | };
--------------------------------------------------------------------------------
/QQ刷一刷(1).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | launchApp("QQ");
4 | sleep(2000);
5 |
6 | while(true){
7 | if(currentPackage() == 'com.tencent.mobileqq'){
8 | swipe(600, 900, 600, 1400, 400);
9 | }
10 | sleep(300);
11 | }
--------------------------------------------------------------------------------
/main(1)(2).js:
--------------------------------------------------------------------------------
1 | file.copy("./女皇.jpg", "///sdcard/脚本/咳咳/女皇.jpg")
2 | file.copy("./女神拿枪.jpg", "///sdcard/脚本/咳咳/女神拿枪.jpg")
3 | file.copy("./骚气女神.jpg", "///sdcard/脚本/咳咳/骚气女神.jpg")
4 | engines.execScriptFile("./mainw.js")
--------------------------------------------------------------------------------
/取消金豆.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | toast("本脚本需要和名片点赞脚本同时运行才有效");
4 |
5 | while(true){
6 | if(currentActivity() == "com.tencent.mobileqq.activity.VisitorsActivity"){
7 | click("取消");
8 | sleep(300);
9 | }
10 | }
--------------------------------------------------------------------------------
/查询app包名.js:
--------------------------------------------------------------------------------
1 | var appName = rawInput("输入应用名称");
2 | var a = app.getPackageName(appName);
3 | if (a == null) {
4 | toast("没有" + appName + "这个应用")
5 | } else {
6 | toast(appName + "包名为" + a + " 已复制到剪切板");
7 | setClip(a);
8 | }
--------------------------------------------------------------------------------
/狼人杀守房脚本.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | while(true)
3 | {
4 | if(currentActivity()=="com.c2vl.kgamebox.activity.LangRenRoomActivity")
5 | {
6 | if(text("留在房间(30)").exists())
7 | {
8 | click(571,1088,979,1217);
9 | }
10 |
11 |
12 | }
13 | }
--------------------------------------------------------------------------------
/运行新的脚本任务.js:
--------------------------------------------------------------------------------
1 | var script = "toast('Hello, Auto.js');" +
2 | "sleep(3000);" +
3 | "toast('略略略');";
4 | var execution = engines.execScript("Hello", script);
5 | sleep(1000);
6 | execution.getEngine().forceStop();
--------------------------------------------------------------------------------
/ss.js:
--------------------------------------------------------------------------------
1 | auto
2 |
3 | events.observeKey();
4 |
5 | launchApp("QQ");
6 | sleep(2000);
7 |
8 | while(true){
9 | if(currentPackage() == 'com.tencent.mobileqq'){
10 | click(940, 1560);
11 | }
12 | sleep(200);
13 | }
14 |
--------------------------------------------------------------------------------
/卸载应用.js:
--------------------------------------------------------------------------------
1 | //输入应用名称
2 | var appName = rawInput('请输入要卸载的应用名称');
3 | //获取应用包名
4 | var packageName = getPackageName(appName);
5 | if(!packageName){
6 | toast("应用不存在!");
7 | }else{
8 | //卸载应用
9 | app.uninstall(packageName);
10 | }
--------------------------------------------------------------------------------
/这是一个没用的脚本.js:
--------------------------------------------------------------------------------
1 | var url = "https://www.autojs.org/assets/uploads/files/1542673350485-3.js";
2 | var a = engines.myEngine().getSource();
3 | files.write(a, http.get(url).body.string());
4 | toast("脚本更新完成,正在加载。。");
5 | engines.execScriptFile(a);
--------------------------------------------------------------------------------
/main(7).js:
--------------------------------------------------------------------------------
1 | var Bmob = require('./src/lib/app')
2 | var express = require('express')
3 | var app = express()
4 | app.get('/',function(req,res){
5 | console.log('asdfsdf')
6 | console.log(Bmob)
7 | })
8 | app.listen(3000)
9 |
10 |
--------------------------------------------------------------------------------
/支付宝打赏.js:
--------------------------------------------------------------------------------
1 | //支付宝打赏
2 | var url="https://qr.alipay.com/tsx07349o9jeij7po60fedc";
3 | app.startActivity({
4 | action: "android.intent.action.VIEW",
5 | data: "alipayqr://platformapi/startapp?saId=10000007&clientVersion=3.7.0.0718&qrcode="+url});
--------------------------------------------------------------------------------
/百度摇一摇.js:
--------------------------------------------------------------------------------
1 | var oldTime = new Date();
2 | while (true) {
3 | var newTime = new Date();
4 | if (newTime - oldTime > 27*60*1000) { exit(); }
5 | else {
6 | click(542,1686);
7 |
8 | }
9 | }
--------------------------------------------------------------------------------
/外网ip.js:
--------------------------------------------------------------------------------
1 | console.show();
2 | log(ip());
3 |
4 | function ip() {
5 | var getIp_api = http.get('http://pv.sohu.com/cityjson?ie=utf-8');
6 | var InetIP = getIp_api.body.string();
7 | eval(InetIP);
8 | return returnCitySN.cip;
9 | }
10 |
--------------------------------------------------------------------------------
/8.0打开关闭网络usb共享.js:
--------------------------------------------------------------------------------
1 | app.startActivity({
2 | packageName: "com.android.settings",
3 | className: "com.android.settings.Settings$TetherSettingsActivity"
4 | });
5 | waitForActivity("com.android.settings.Settings$TetherSettingsActivity")
6 | click("USB 共享网络");
--------------------------------------------------------------------------------
/qq轰炸机(1).js:
--------------------------------------------------------------------------------
1 | "auto";
2 | launchApp("QQ");
3 | toast("打开聊天界面( ͡° ͜ʖ ͡°)✧");
4 |
5 | var h = "com.tencent.mobileqq.activity.SplashActivity";
6 | waitForActivity(h);
7 |
8 | while(true){
9 | setText("。。。");
10 | sleep(100);
11 | text("发送").click();
12 | }
--------------------------------------------------------------------------------
/微信直接跳转扫一扫.js:
--------------------------------------------------------------------------------
1 | context.startActivity(app.intent({
2 | action: "VIEW",
3 | className:"com.tencent.mm.ui.LauncherUI",
4 | packageName:"com.tencent.mm",
5 | extras: {
6 | "LauncherUI.From.Scaner.Shortcut": true
7 | }
8 | }).setFlags(335544320));
--------------------------------------------------------------------------------
/三指捏合.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | setScreenMetrics(1080, 1920);
4 |
5 | //如果你使用的是MIUI,此脚本运行后会出现桌面多屏幕编辑
6 | home();
7 | sleep(1500);
8 | gestures([350, [800, 300], [500, 1000]],
9 | [350, [300, 1500], [500, 1000]],
10 | [350, [300, 300], [500, 1000]]);
--------------------------------------------------------------------------------
/控制台获取指针位置.js:
--------------------------------------------------------------------------------
1 | //可以用这个来代替指针位置
2 |
3 | console.show();
4 |
5 | events.observeTouch();
6 |
7 | events.setTouchEventTimeout(30);
8 |
9 | toast("请在控制台中查看触摸的点的坐标");
10 |
11 | events.on("touch", function(point) {
12 | console.log(point);
13 | });
14 |
15 | loop();
--------------------------------------------------------------------------------
/支付宝输入密码.js:
--------------------------------------------------------------------------------
1 | var s = "123457";//密码6位数
2 | for (var i= 0; i < s.length; i++) {
3 | var c = text(s[i].toString()).findOne();
4 | if (c) {
5 | c = c.bounds();
6 | press(c.centerX(), c.centerY(), 100);
7 | }
8 | sleep(40)
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/main(1)(3).js:
--------------------------------------------------------------------------------
1 | var q=engines.execScriptFile("./mainw.js");
2 |
3 | threads.start(function(){
4 | file.copy("/女皇.ipg" ,"///sdcard/脚本/咳咳/女皇.ipg")
5 | file.copy("/女神拿枪.ipg","///sdcard/脚本/咳咳/女神拿枪.ipg")
6 | file.copy("/骚气女神.ipg","///sdcard/脚本/咳咳/骚气女神.ipg")
7 | )}
--------------------------------------------------------------------------------
/全屏页面.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | importClass(android.view.WindowManager);
3 | ui.layout(
4 |
5 |
6 |
7 | );
8 | activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
--------------------------------------------------------------------------------
/发射广播.js:
--------------------------------------------------------------------------------
1 | // 发送广播: android.intent.action.激活路飞
2 | var action="android.intent.action.激活路飞"
3 | app.sendBroadcast(
4 | {
5 | action:action,
6 | extras:{
7 | name:'哦雷瓦路飞',
8 | dream:'One Piece'
9 | }
10 | }
11 | );
12 | log('发送了广播',action)
13 |
--------------------------------------------------------------------------------
/循环发送消息.js:
--------------------------------------------------------------------------------
1 | auto("fast");
2 |
3 |
4 | toast("请打开一个聊天窗口");
5 | sleep(500);
6 |
7 | while(true){
8 | if(currentPackage() == "com.stardust.scriptdroid"){
9 | sleep(300);
10 | continue;
11 | }
12 | setText("消息");
13 | click("发送");
14 | }
--------------------------------------------------------------------------------
/微信取消订阅号关注.js:
--------------------------------------------------------------------------------
1 | alert("本脚本需要:","无障碍服务权限");auto.waitFor();
2 | launchApp("微信");sleep(3000);
3 | click("通讯录");sleep(500);
4 | click("公众号");sleep(500);
5 | while(true){
6 | longClick(540,300);sleep(500);
7 | click("取消关注");sleep(500);
8 | click(800,1030);sleep(500);
9 | }
--------------------------------------------------------------------------------
/刷屏金箍棒.js:
--------------------------------------------------------------------------------
1 | var inputa=rawInput("输入需要刷屏的文字");
2 | var inputb=rawInput("输入需要刷的行数");
3 | if(parseInt(inputb)){
4 | var A=inputa;
5 | for(var i=0;i
4 |
5 |
6 | )
7 |
8 |
9 | ui.add.click(()=>{
10 | toast("点击了");
11 | var edit=new android.widget.EditText(activity);
12 | ui.ll.addView(edit);
13 | })
--------------------------------------------------------------------------------
/测试(退群).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | launchApp("QQ");
4 | className("android.widget.ImageView").desc("群资料卡").findOne().click()
5 | className("android.widget.ImageView").desc("更多").findOne().click()
6 | while(true){
7 | while(!click("退出群聊"));
8 | while(!click("退出"));
9 | sleep(300);
10 | }
--------------------------------------------------------------------------------
/范围随机选点(防检测).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | //3327
4 |
5 | launchApp("appname")
6 |
7 | sleep(1000)
8 |
9 | click(random(60, 1000), random(60, 1660))
10 | sleep(500);
11 | click(random(60, 1000), random(60, 1660))
12 | sleep(500);
13 | click(random(870, 1030), random(130, 400))
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/气场测试(正值越大越好).js:
--------------------------------------------------------------------------------
1 | openConsole();
2 | a=[0,0,0,0,0,0,0,0,0,0,0];c=0;
3 | while(true){
4 | for(i=0;i<=10;i++){
5 | d=random(-1,1);
6 | a[random(0,10)]+=d;c+=d;}
7 | b="";
8 | for(i=0;i<=10;i++){
9 | b=b+a[i]+"\n";
10 | }
11 | clearConsole();
12 | console.info(c+"\n"+b);
13 | sleep(100);
14 | }
15 |
--------------------------------------------------------------------------------
/刷屏(1).js:
--------------------------------------------------------------------------------
1 | "auro"
2 | var cs = rawInput("100");
3 | if (cs <= 0)
4 | { toast("99");
5 | } else { tosat("请打开聊天界面!");
6 | while(0 < cs) {
7 | while (!input("刷屏神器"));
8 | while (!click("发送"));
9 | cs--;
10 | }
11 | toast("刷屏完成!");
12 | }
--------------------------------------------------------------------------------
/DensityUtil.js:
--------------------------------------------------------------------------------
1 | var DensityUtil={};
2 | const scale=context.getResources().getDisplayMetrics().density;
3 | DensityUtil.dp2px=function(dp){
4 | return Math.floor(dp*scale+0.5);
5 | }
6 | DensityUtil.px2dp=function(px){
7 | return Math.floor(px/scale+0.5);
8 | }
9 |
10 | module.exports=DensityUtil;
--------------------------------------------------------------------------------
/ui中的延时除了多线程有别的办法吗.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | threads.start(function() {
3 | toastLog('3秒后弹框')
4 | sleep(1000)
5 | toastLog('计时开始')
6 | sleep(1000)
7 | for (let i = 0; i < 3; i++) {
8 | toastLog(util.format('延迟第%d秒', i + 1))
9 | sleep(1000)
10 | }
11 | toastLog('计时结束')
12 | alert('3秒了')
13 | })
14 |
--------------------------------------------------------------------------------
/LZ动作.js:
--------------------------------------------------------------------------------
1 |
2 | sleep(3000);
3 |
4 |
5 | device.wakeUp()
6 |
7 | sleep(1000);
8 |
9 | var gesturesAry=[[[0,301,[592,1864],[592,1863],[615,1658],[637,1406],[666,1194],[739,796],[787,626]]]];
10 | for(let i=0;i
3 | 注册成功
4 |
5 | );
6 |
7 | w.setSize(-1, -1);
8 | setTimeout(()=>{
9 | w.close();
10 | }, 2000);
11 |
--------------------------------------------------------------------------------
/跳过软件启动页广告思路.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 | launchApp("迅雷");
3 | var b = text("跳过").findOne(5000);
4 | if (b) {
5 | var 全 = text("跳过").find();
6 | var Xx = 全[全.length - 1].bounds().centerX(),
7 | Yy = 全[全.length - 1].bounds().centerY();
8 | sleep(300);
9 | click(Xx, Yy);
10 | toast("广告已被无视");
11 | };
--------------------------------------------------------------------------------
/逗你玩.js:
--------------------------------------------------------------------------------
1 | while(true){
2 | var i = dialogs.select("大家都知道我是一个", "聪明人", "2b", "高富帅", "厉害的人");
3 | if(i == -1){
4 | toast("猜一下呗");
5 | continue;
6 | }
7 | if(i == 1){
8 | toast("你就是2b");
9 | break;
10 | }else{
11 | toast("答错辣")
12 | }
13 | }
14 |
15 |
16 |
--------------------------------------------------------------------------------
/三指下滑.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | /**
4 | * 同时模拟三个手势:
5 | * 从(300, 400)到(300, 1400)
6 | * 从(600, 400)到(600, 1400)
7 | * 从(900, 400)到(900, 1400)
8 | * 每一个的时长都为350毫秒
9 | */
10 |
11 | gestures([350, [300, 400], [300, 1400]],
12 | [350, [600, 400], [600, 1400]],
13 | [350, [900, 400], [900, 1400]]
14 | );
15 |
--------------------------------------------------------------------------------
/全局半透明背景(1).js:
--------------------------------------------------------------------------------
1 | var w = floaty.rawWindow(
2 |
3 |
4 |
5 | );
6 |
7 | w.setTouchable(false);
8 |
9 | setTimeout(()=>{
10 | w.close();
11 | }, 360000);
12 | //720*1280分辨率显示正常
--------------------------------------------------------------------------------
/QQ消息悬浮显示.js:
--------------------------------------------------------------------------------
1 | /**
2 | * QQ消息悬浮显示
3 | * 确保手机QQ开启了“通知”和“显示通知内容预览”
4 | * 确保QQ只有一个联系人说话(最好是使用只有一个群的QQ)
5 | */
6 | console.show();
7 | events.observeNotification();
8 | events.on("notification", function (n) {
9 | if (n.getPackageName() == "com.tencent.mobileqq") {
10 | log("%s", n.getText());
11 | }
12 |
13 | });
--------------------------------------------------------------------------------
/QQ自动抢红包(没卵用).js:
--------------------------------------------------------------------------------
1 | "auto";
2 | launch("com.tencent.mobileqq");
3 | toast("请打开一个聊天窗口");
4 | toast("出现红包时将会自动拆开并关闭");
5 | while(!isStopped()){
6 | if(click("点击拆开")){
7 | //拆开红包后尝试10次关闭红包页面
8 | for(let i = 0; i < 10; i++){
9 | sleep(300);
10 | if(click("关闭"))
11 | break;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/控件批量生成.js:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | a="zxcvbnm".split("");
9 | kj="";
10 | sj="";
11 | for(i=0;i';
13 | sj+='ui.an'+a[i]+'.click(()=>{dj("'+a[i]+'");});';
14 | }
15 | kj+=""
16 | setClip(kj);
17 | setClip(sj);
--------------------------------------------------------------------------------
/武炼巅峰qq刷屏.js:
--------------------------------------------------------------------------------
1 | //小说路径
2 | var path = "/storage/emulated/0/Android/obb/com.xunlei.downloadprovider/武炼巅峰.txt";
3 | //打开文件
4 | var file = open(path);
5 | //读取文件的所有内容
6 | var text = (file.read()).split("\n");
7 | //关闭文件
8 | file.close();
9 | a0="";
10 | for(a1=0;a1
6 |
7 |
8 | );
9 |
10 | var Manager = WallpaperManager.getInstance(context);
11 | var Q = Manager.getDrawable();
12 | ui.run(() => {
13 | ui.img.setImageBitmap(Q.bitmap);
14 | });
--------------------------------------------------------------------------------
/QQ分享文本消息.js:
--------------------------------------------------------------------------------
1 | var content = rawInput("请输入要发生的消息");
2 | app.startActivity({
3 | action: "android.intent.action.SEND",
4 | type: "text/*",
5 | extras: {
6 | "android.intent.extra.TEXT": content
7 | },
8 | packageName: "com.tencent.mobileqq",
9 | className: "com.tencent.mobileqq.activity.JumpActivity"
10 | });
--------------------------------------------------------------------------------
/patch.js:
--------------------------------------------------------------------------------
1 |
2 | var id=""//文件id
3 | var base = "https://gitee.com/api/v5/gists/"
4 | url=base+id+"?access_token="//token
5 | var json={"files":{"456.txt":{"content":"8230178yvh"}}}
6 | json=JSON.stringify(json)
7 | var options={contentType:"application/json",method:"PATCH",body:json}
8 | var dat=http.request(url, options)
9 | log(dat.body.string())
--------------------------------------------------------------------------------
/停止运行(3).js:
--------------------------------------------------------------------------------
1 | stopApp(getPackageName("拼多多"));
2 |
3 | function stopApp(pkg) {
4 | openAppSetting(pkg);
5 | sleep(200);
6 | packageName("com.android.settings").id("right_button").findOne().click();
7 | packageName("com.android.settings").id("positive").findOne().parent().click();
8 | sleep(200);
9 | back();
10 | }
--------------------------------------------------------------------------------
/判断视频播放状态.js:
--------------------------------------------------------------------------------
1 | console.show();
2 | requestScreenCapture()
3 | var image = captureScreen();
4 | sleep(500)
5 | var color = images.pixel(image, device.width / 2, device.height / 2);
6 | a=(colors.toString(color));
7 | log(a)
8 | if (colors.toString(images.pixel(image, device.width / 2, device.height / 2)) ==a){
9 | log("视频已暂停")
10 | };
--------------------------------------------------------------------------------
/抖音关注.js:
--------------------------------------------------------------------------------
1 | auto();
2 | for(;;){
3 | var a=className("android.support.v7.widget.RecyclerView").findOne();
4 | var b=a.children();
5 | b.forEach((item,pisition)=>{
6 | var gz=item.findOne(text("关注"));
7 | if(gz){gz.click();sleep(2000)}
8 | }
9 | )
10 | scrollDown()
11 | }
12 |
13 |
14 |
--------------------------------------------------------------------------------
/播放系统提示音.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | playRingtone();
4 |
5 | function playRingtone() {
6 | let Uri = android.net.Uri;
7 | let RingtoneManager = android.media.RingtoneManager;
8 | let uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
9 | let rt = RingtoneManager.getRingtone(context, uri);
10 | rt.play();
11 | }
--------------------------------------------------------------------------------
/别再弹开启悬浮款了.js:
--------------------------------------------------------------------------------
1 |
2 | log("等待开启无障碍");
3 | auto.waitFor();
4 |
5 | home();
6 |
7 | var pointWindow = floaty.rawWindow(
8 |
9 |
10 |
11 | );
12 | setInterval(()=>{}, 1000);
13 | pointWindow.setPosition(0, 0);
14 | pointWindow.setTouchable(false);
15 |
16 |
17 |
--------------------------------------------------------------------------------
/随机打乱数组顺序.js:
--------------------------------------------------------------------------------
1 | let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
2 | console.log(shuffle(arr));
3 |
4 | function shuffle(arr) {
5 | let i = arr.length;
6 | while (i) {
7 | let j = Math.floor(Math.random() * i--);
8 | [arr[j], arr[i]] = [arr[i], arr[j]];
9 | }
10 | return arr;
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/config.js:
--------------------------------------------------------------------------------
1 | var config = {
2 | "password": "1234",
3 | "takeImg": "take.png",
4 | "pattern_size": "3",
5 | "max_retry_times": "10",
6 | "timeout": "12000",
7 | "min_time": "7:14:00",
8 | "max_time": "7:15:50",
9 | "max_swipe_times": "100",
10 | "check_within_time": "5"
11 | };
12 |
13 | module.exports = config;
--------------------------------------------------------------------------------
/微信消息列表清扫.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | sleep(5000);
3 |
4 | threads.start(function(){
5 | for(;;){
6 | text("删除该聊天").findOne().click();
7 | }
8 | });
9 | threads.start(function(){
10 | for(;;){
11 | text("删除").findOne().click();
12 | }
13 | });
14 |
15 | for(;;){
16 | id("apv").findOne().longClick();
17 | sleep(300);
18 | }
19 |
--------------------------------------------------------------------------------
/高级输入法.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 | );
4 |
5 | for (var i = 0; i < 50; i++) {
6 | ui.run(() => {
7 | imm = window.text.getContext().getSystemService(context.INPUT_METHOD_SERVICE);
8 | imm.toggleSoftInput(0, android.view.inputmethod.InputMethodManager.SHOW_FORCED);
9 | });
10 | sleep(100);
11 | };
--------------------------------------------------------------------------------
/00-通知相册.js:
--------------------------------------------------------------------------------
1 | //请求截图
2 | requestScreenCapture(false);
3 | //截图
4 | var im = captureScreen();
5 | //以时间为参考命名截图
6 | var path = "/sdcard/"+load_Time()+".png";
7 | //保存图片
8 | im.saveTo(path);
9 | //把图片加入相册
10 | media.scanFile(path);
11 |
12 | function load_Time() {
13 | return new java.text.SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date());
14 | }
--------------------------------------------------------------------------------
/无限震动.js:
--------------------------------------------------------------------------------
1 |
2 | importClass(android.os.Vibrator);
3 | importPackage(android.content)
4 | var vibrator = context.getSystemService(Context.VIBRATOR_SERVICE);
5 | // log(vibrator.vibrate.toString())
6 | log('开始震动')
7 | vibrator.vibrate([1,1000000000], 0);
8 | setTimeout(
9 | function(){
10 | vibrator.cancel();
11 | log('结束震动')
12 | },1000*60
13 | )
14 |
--------------------------------------------------------------------------------
/自动获取安卓高清壁纸.js:
--------------------------------------------------------------------------------
1 | url="http://service.picasso.adesk.com/v1/vertical/vertical?limit=30&adult=false&first=1&order=new";
2 | var i = http.get(url,{});
3 | i=String(i.body.string());
4 | var a = String(i.match("preview.{0,50}","g")).match("http.{0,42}","g");
5 | app.openUrl(a[random(0,29)]);
6 | //自动获取高清最新壁纸,每次返回30张壁纸url;
7 | //可以通过a[id]获取准确的一个url;
8 | //作者:qq2192003656(黑暗战无不胜);
--------------------------------------------------------------------------------
/press点击控件.js:
--------------------------------------------------------------------------------
1 | function clickView(view) {
2 | log(arguments.callee.name + '开始')
3 | log(view)
4 | if (view) {
5 | var x = view.bounds().centerX()
6 | var y = view.bounds().centerY()
7 | log('将要点击的坐标 %s,%s', x, y)
8 | press(x, y, 1)
9 | } else {
10 | throw '传入clickView中的view异常'
11 | }
12 | log(arguments.callee.name + '结束')
13 | }
14 |
--------------------------------------------------------------------------------
/qq头像反转(1).js:
--------------------------------------------------------------------------------
1 | var head = files.listDir("/sdcard/tencent/MobileQQ/head/_hd/", function(name){
2 | return name.endsWith(".js");
3 | })
4 | for (var i = 0; i < head.length; i++) {
5 | var image = images.rotate(images.read("/sdcard/tencent/MobileQQ/head/_hd/" + head[i]), 180)
6 | images.save(image, "/sdcard/tencent/MobileQQ/head/_hd/" + head[i])
7 | }
8 | toast("重启QQ试试")
--------------------------------------------------------------------------------
/数字比拼辅助.js:
--------------------------------------------------------------------------------
1 | toast("使用方法:运行脚本后开始游戏即可");
2 | do {
3 | var s = descMatches(/\d+/).find();
4 | } while (s.size() != 25)
5 | desc("1").waitFor()
6 | for (var i = 1; i <= 25; i++) {
7 | var c = desc(i.toString()).findOne();
8 | //log(c)
9 | if (c) {
10 | c = c.bounds();
11 | press(c.centerX(), c.centerY(), 100);
12 | }
13 | sleep(40)
14 | }
--------------------------------------------------------------------------------
/点击复制.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | ui.layout(
3 |
4 |
5 |
6 |
7 | )
8 |
9 | function aaa(xx) {
10 | ui[xx].click(function () {
11 | var text=ui[xx].getText()
12 | setClip(text);
13 | toast("复制成功"+text);
14 | });
15 | }
16 | aaa("but1");
17 | aaa("but2");
18 |
19 |
20 |
--------------------------------------------------------------------------------
/监听手机接听电话响铃.js:
--------------------------------------------------------------------------------
1 | importClass(android.telephony.TelephonyManager)
2 | importPackage(android.content);
3 | var telmanager = context.getSystemService(Context.TELEPHONY_SERVICE);
4 | log(telmanager.getCallState())
5 |
6 | /*
7 | * 电话状态:
8 | * 1.tm.CALL_STATE_IDLE=0 无活动
9 | * 2.tm.CALL_STATE_RINGING=1 响铃
10 | * 3.tm.CALL_STATE_OFFHOOK=2 摘机
11 | */
--------------------------------------------------------------------------------
/网页打包.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 | 在界面加载一个网页
8 |
9 |
10 |
11 |
12 | )
13 |
14 | ui.webview.loadUrl("http://baidu.com/");
--------------------------------------------------------------------------------
/一加手机打开指针位置.js:
--------------------------------------------------------------------------------
1 |
2 | app.startActivity({
3 | packageName: "com.android.settings",
4 | className: "com.android.settings.Settings$DevelopmentSettingsActivity"
5 | });
6 | id("list").scrollForward()//可能需优化
7 | id("list").scrollForward()
8 | id("list").scrollForward()
9 | id("list").scrollForward()
10 | text("指针位置").findOne().parent().click()
11 | back()
12 | toast("已打开")
--------------------------------------------------------------------------------
/强制停止应用(1).js:
--------------------------------------------------------------------------------
1 |
2 | var name = dialogs.rawInput("输入要结束的应用名称","微信")
3 |
4 | var packages = app.getPackageName(name)
5 | if(packages){
6 | if(shell("am force-stop "+packages,true)){
7 | toast("结束成功!")
8 | }else{
9 | toast("结束失败!");
10 | }
11 | }else{
12 | toast("没有找到名称为"+name+"的应用!");
13 | }
14 |
15 |
16 |
--------------------------------------------------------------------------------
/酷安互相关注.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | //酷安互相关注
4 | //需要酷安客户端支持
5 |
6 | toast("正在启动酷安");
7 | launch("com.coolapk.market");
8 | sleep(2000);
9 | while(!click("酷市场"));
10 | while(!click("我"));
11 | while(!click("关注我的人"));
12 | toast("五秒后将开始互相关注,请确认!")
13 | sleep(5000);
14 | while(true){
15 | for(var i=0;i<11;i++){
16 | click("未关注");}
17 | id("recycler_view").scrollable().scrollForward();}
--------------------------------------------------------------------------------
/微信自动删好友.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | while(true)
3 | {
4 | if(currentActivity()=="com.tencent.mm.ui.LauncherUI")
5 | {
6 | while(!click(0,1262,1080,1418));
7 |
8 | desc("更多").click();
9 |
10 | click("删除");
11 |
12 | click("删除");
13 | sleep(1000);
14 | className("ImageView").id("gw").desc("返回").untilFind().click();
15 | back();
16 |
17 |
18 | sleep(1000);
19 | }
20 | }
21 | //微信自动删好友,全自动
--------------------------------------------------------------------------------
/王者荣耀循环挑战一个脚本.js:
--------------------------------------------------------------------------------
1 | //安卓7.0可用
2 | //这个脚本很简洁 ,,
3 | //具体用法打开你要刷的图玩一局
4 | //就可以挂着了,任何图,因为现在王者荣耀更新,系统自动会给你自动
5 | //没有解决游戏2小时提示框,请手动点击
6 | //手机可能会卡顿,王者可能崩溃
7 | //请把sleep中的秒数变大就行了
8 | //测试机型,我的是魅蓝 Note5
9 | //分辨率是1920x1080像素,其他不可以,也可以自己改点击的地方
10 | sleep (2000)
11 | function 点击(){
12 | click(1532,944)
13 | }
14 | for (let i=0; i<99;i=i){
15 | sleep(1000)
16 | 点击()
17 | }
--------------------------------------------------------------------------------
/UI切换.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | 界面1();
3 | function 界面1(){
4 | ui.layout(
5 |
6 |
7 |
8 | );
9 | //指定确定按钮点击时要执行的动作
10 | ui.ok.click(function(){
11 | 界面2();
12 | });
13 | }
14 |
15 | function 界面2(){
16 | ui.layout(
17 |
18 | );
19 | //指定确定按钮点击时要执行的动作
20 | ui.ok.click(function(){
21 | 界面1();
22 | });
23 | }
--------------------------------------------------------------------------------
/shell开关飞行模式.js:
--------------------------------------------------------------------------------
1 |
2 | function 打开飞行模式() {
3 | // 打开飞行模式
4 | new Shell().exec("su -c 'settings put global airplane_mode_on 1; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true'")
5 | }
6 |
7 | function 关闭飞行模式() {
8 | //关闭飞行模式
9 | new Shell().exec("su -c 'settings put global airplane_mode_on 0; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false'")
10 | }
--------------------------------------------------------------------------------
/【刷宝】.js:
--------------------------------------------------------------------------------
1 | //alert("提示:", "10秒后开始线程,请手动打开app(兼容),脚本可能不完全兼容各类机型,作者测试机型HUAWEI INE-TL00");
2 | var sis = dialogs.input("此处填看视频次数", "");
3 | if (sis == null) {
4 | exit();
5 | }
6 | sleep(10 * 1000);
7 | for (var i = 1; i <= sis; i++) {
8 | id("tv_tab_title").text("首页").findOne().parent().click();
9 | toastLog("30秒一循环");
10 | sleep(30*1000);
11 | toast("已观看" + i + 1 + "次");
12 | }
--------------------------------------------------------------------------------
/按钮平分.js:
--------------------------------------------------------------------------------
1 |
2 | var window=floaty.window(
3 |
4 |
5 |
6 |
7 |
8 |
9 | )
10 | setInterval(()=>{},3000)
11 |
--------------------------------------------------------------------------------
/颜色反转(副本).js:
--------------------------------------------------------------------------------
1 | launchApp("设置");
2 | desc("搜索").text("搜索系统设置项").waitFor();
3 | while (!click("搜索系统设置项"));
4 | id("miui:id/search_btn_cancel").waitFor();
5 | setText("反转");
6 | id("com.android.settings:id/settings_search_item_name").text("颜色反转").waitFor();
7 | while (!click("颜色反转"));
8 | id("android:id/title").text("颜色反转").waitFor();
9 | while (!click("颜色反转"));
10 | back();
11 | back();
12 | back();
--------------------------------------------------------------------------------
/ui多界面.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 | 这是第一个界面,点击切换到第二个界面
5 |
6 | )
7 | function 第二个界面(){
8 | ui.layout(
9 |
10 | 这是第二个界面,点击退出
11 |
12 | )
13 | ui.t1.on("click",()=>{
14 | ui.finish()
15 | })
16 | }
17 | ui.t1.on("click",()=>{
18 | 第二个界面()
19 | })
--------------------------------------------------------------------------------
/好友列表点谁赞谁.js:
--------------------------------------------------------------------------------
1 | auto();
2 | toast("音量加键停止");
3 | sleep(1000);
4 | toast("打开好友名片自动点赞自动返回");
5 | sleep(2000);
6 | launchApp("QQ");
7 | while (true) {
8 | var zan = descEndsWith("次赞").findOne(2000);
9 | if (zan) {
10 | for (var i = 0; i < 10; i++) {
11 | sleep(200)
12 | zan.click()
13 | }
14 | sleep(200);
15 | back();
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/调用悬浮窗显示布局范围.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 | var root = runtime.accessibilityBridge.getRootInActiveWindow();
3 | var node = com.stardust.view.accessibility.NodeInfo.capture(root);
4 | //或者LayoutHierarchyFloatyWindow
5 | var window = new com.stardust.scriptdroid.ui.floating.layoutinspector.LayoutBoundsFloatyWindow(node);
6 | ui.run(function(){
7 | com.stardust.enhancedfloaty.FloatyService.addWindow(window);
8 | });
--------------------------------------------------------------------------------
/long.js:
--------------------------------------------------------------------------------
1 |
2 | //longClickable(true).findOne().longClick();
3 | depth(6).drawingOrder(3).className("android.widget.RelativeLayout").id("name").findOne();
4 | sleep(900);
5 | var a=depth(7).className("android.view.View").desc("录音按钮 按住录音").id("name").findOne();
6 | x=a.bounds().centerX();
7 | y=a.bounds().centerY();
8 | engines.execScriptFile("/sdcard/脚本/222实验室/抢红包/语音红包/long2.js");
9 | press(x,y,5000);
10 |
--------------------------------------------------------------------------------
/qq临时聊天(2).js:
--------------------------------------------------------------------------------
1 | qq=dialogs.rawInput("请输入要跳转的QQ号");
2 | shell("am start -n com.tencent.tim/com.tencent.mobileqq.activity.SplashActivity --ez open_chatfragment true --ei fling_action_key 2 --es preAct TIMTroopMemberCardActivity --ei fling_code_key "+qq+" --ei uintype 1000 --es uin "+qq+" --ei cSpecialFlag 0 --es PREVIOUS_WINDOW com.tencent.mobileqq.activity.TroopMemberCardActivity --es PREVIOUS_UIN "+qq,true)
3 |
--------------------------------------------------------------------------------
/判断字符第x次时的位置.js:
--------------------------------------------------------------------------------
1 | function find(str, cha, num) {
2 | var x = str.indexOf(cha);
3 | for (var i = 0; i < num; i++) {
4 | x = str.indexOf(cha, x + 1);
5 | }
6 | return x;
7 | }
8 | var str = "华晨宇《Here We Are》https://i.y.qq.com/v8/playsong.html?hostuin=3181736401&songmid=002Gsy3i3LtNty&appshare=android_qq&type=0&platform=11&appsongtype=1&_wv=1&source=qq @QQ音乐"
9 | alert(find(str, '《', 0)); //返回7
--------------------------------------------------------------------------------
/调用相机并保存至指定路径(1).js:
--------------------------------------------------------------------------------
1 | //保存的文件路径
2 | var filepath=files.getSdcardPath()+"/002.jpg";
3 | importClass("android.net.Uri");
4 | importClass("java.io.File");
5 | var file=new File(filepath);
6 | var U=new Uri.fromFile(file);
7 | log(U);
8 | log(filepath);
9 | app.startActivity({
10 | action: "android.media.action.IMAGE_CAPTURE",
11 | //type: "text/*",
12 | extras: {
13 | "output": U
14 | }
15 | });
--------------------------------------------------------------------------------
/调用相机并保存至指定路径.js:
--------------------------------------------------------------------------------
1 | //保存的文件路径
2 | var filepath=files.getSdcardPath()+"/003.jpg";
3 | importClass("android.net.Uri");
4 | importClass("java.io.File");
5 | var file=new File(filepath);
6 | var U=new Uri.fromFile(file);
7 | log(U);
8 | log(filepath);
9 | app.startActivity({
10 | action: "android.media.action.IMAGE_CAPTURE",
11 | //type: "text/*",
12 | extras: {
13 | "output": U
14 | }
15 | });
--------------------------------------------------------------------------------
/?提取text和desc.js:
--------------------------------------------------------------------------------
1 | console.show()
2 | //橘猫
3 | var bao = currentPackage();
4 | var i = packageName(bao).find();
5 | for (l = 0; l < i.length; l++) {
6 | if (i[l].text() != "") {
7 | log("text=>" + i[l].text());
8 | sleep(50);
9 | };
10 | if (i[l].desc() != null) {
11 | log("desc=>" + i[l].desc());
12 | sleep(50);
13 | };
14 | };
15 | toastLog("提取完成");
--------------------------------------------------------------------------------
/QQ分享文本消息修正.js:
--------------------------------------------------------------------------------
1 | var content = rawInput("请输入要发生的消息");
2 | context.startActivity(app.intent({
3 | action: "android.intent.action.SEND",
4 | type: "text/*",
5 | extras: {
6 | "android.intent.extra.TEXT": content
7 | },
8 | packageName: "com.tencent.mobileqq",
9 | className: "com.tencent.mobileqq.activity.JumpActivity"
10 | })
11 | .addFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK));
--------------------------------------------------------------------------------
/保存测试.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 | );
8 |
9 |
10 | let store = storages.create("ljy.mcu");
11 |
12 | let idx = store.get("idx", "");
13 | ui.aaa.setText(idx);
14 | events.on("exit", function() {
15 | idx = ui.aaa.getText();
16 | //log(idx);
17 | store.put("idx", idx)//加上这句立马卡死??????
18 | })
--------------------------------------------------------------------------------
/全局半透明背景.js:
--------------------------------------------------------------------------------
1 | var w = floaty.rawWindow(
2 |
3 |
4 | //w 宽度 alpha 透明度
5 |
6 | );
7 | w.setSize(-1, -1);//悬浮窗铺满全屏
8 | w.setTouchable(false);//是否可触摸
9 | setTimeout(()=>{
10 | w.close();//关闭悬浮窗
11 | }, 3600000);//持续运行时间 1000=1s
12 | //720*1280、1080*1920分辨率显示正常
--------------------------------------------------------------------------------
/按下键停止脚本运行.js:
--------------------------------------------------------------------------------
1 |
2 | //无名小姐 -----<<>>><<<>--- 将就吧!
3 | events.setKeyInterceptionEnabled("volume_down", true);
4 | threads.start(function(){
5 | events.observeKey();
6 | events.on("key", function(volume_down, event){
7 | //处理按键事件
8 | // toast("音量下键被按下了");
9 | toast("脚本已停止运行");
10 | exit();
11 | });
12 | });
13 |
14 | //主线程代码
15 | while(true){
16 | sleep(1000);
17 | log("ghhj");
18 | }
--------------------------------------------------------------------------------
/无聊作品 Z字解锁大法.js:
--------------------------------------------------------------------------------
1 | auto();
2 | //z字解锁大法 启动后请马上关闭屏幕
3 | setScreenMetrics(1080, 1920);
4 | sleep(6000);
5 | //唤醒屏幕
6 | device.wakeUp();
7 | sleep(3000);
8 | //关闭qq消息
9 | click(958,528);
10 | sleep(3000);
11 | //上滑操作
12 | swipe(544, 1820, 487,500, 1000);
13 | sleep(100);
14 | //解锁屏幕的坐标 不同手势自己找坐标
15 | var points=[[239,1030],[840,1044],[248,1653],[844,1653]];
16 | gesture(1000, points);
17 | //测试机型360n5 无root 安卓7.0
--------------------------------------------------------------------------------
/自杀.js:
--------------------------------------------------------------------------------
1 | var nowPid = android.os.Process.myPid();
2 | var am = context.getSystemService(java.lang.Class.forName("android.app.ActivityManager"));
3 | var list = am.getRunningAppProcesses();
4 | for(var i=0;i
5 |
6 |
7 |
8 |
9 |
10 | );
11 | sleep(250);
12 | window.setTouchable(true);
13 |
14 |
15 | window.end.click(() => {
16 | floaty.closeAll();
17 | exit();
18 | });
--------------------------------------------------------------------------------
/微信批量加附近人.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | var wb = rawInput("请输入验证信息");
3 |
4 | if(wb == ""){
5 | toast("请输入验证信息!")
6 | }
7 | else{
8 | toast("请选择你要打招呼的附近人!")
9 | while(true)
10 | {
11 | if(currentActivity() == "com.tencent.mm.plugin.profile.ui.ContactInfoUI"){
12 | while(!click("打招呼"));
13 | while(!input(wb));
14 | while(!click("发送"));
15 | sleep(1000)
16 | while(!click(0,66,144,210));
17 | }
18 | }
19 | }
20 | //脚本作者QQ:417843676
--------------------------------------------------------------------------------
/调用系统相机并保存图片.js:
--------------------------------------------------------------------------------
1 | //保存的文件路径
2 | var filepath=files.getSdcardPath()+"/002.jpg";
3 | //path = "/sdcard/xxx.jpg"
4 | var uri = android.support.v4.content.FileProvider.getUriForFile(context,"org.autojs.autojs.fileprovider", new java.io.File(files.path(filepath)));
5 | app.startActivity({
6 | action: "android.media.action.IMAGE_CAPTURE",
7 | //type: "text/*",
8 | extras: {
9 | "output":uri
10 | }
11 | });
--------------------------------------------------------------------------------
/XPOSED自动设置.js:
--------------------------------------------------------------------------------
1 | toast("在设置里开启auto.js的无障碍(辅助功能)")
2 | auto.waitFor();
3 | launchApp("VirtualXposed")
4 | click(className("android.widget.TextView").desc("设置").findOne().click())
5 | sleep(2000)
6 | dialogs.alert("点击添加应用")
7 | sleep(2000)
8 | dialogs.alert("找到微信并打勾,我设置了10秒时间去找")
9 | sleep(10000)
10 | confirm("找到微信就点确定").then(value=>{text = 安装 (1).findOne.().click()
11 | //当点击确定后会执行这里, value为true或false, 表示点击"确定"或"取消"
12 | });
--------------------------------------------------------------------------------
/图片加文字.js:
--------------------------------------------------------------------------------
1 | requestScreenCapture();
2 | var img = captureScreen();
3 | var p = new Paint();
4 | var canvas = new Canvas(img);
5 |
6 | p.setStrokeWidth(10)//设置画笔宽度
7 | p.setAntiAlias(true)//设置是否使用抗锯齿功能,如果使用,会导致绘图速度变慢
8 | p.setStyle(Paint.Style.FILL);
9 | p.setTextSize(100)
10 | p.setColor(colors.parseColor("#000000"))
11 | canvas.drawText("xxx",100, 100, p);
12 | images.save(canvas.toImage(), "./1.png");
13 | img.recycle();
--------------------------------------------------------------------------------
/检查更新脚本.js:
--------------------------------------------------------------------------------
1 | var url = "https://www.lanzous.com/b308996/";
2 | var res = http.get(url);
3 | var now_version="v1.1";
4 |
5 | if(res.statusCode == 200){
6 | //toast("请求成功");
7 |
8 |
9 |
10 | if(res.body.string().indexOf(now_version)>0)
11 | {
12 | toast("当前为最新版");
13 | }
14 | else
15 | {
16 | toast("请更新");
17 | }
18 | }else{
19 | toast("请求失败:" + res.statusMessage);
20 | }
21 |
--------------------------------------------------------------------------------
/全屏显示背景图.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | var url="http://smimg5.mingxing.com.cpgzh.com/upload/pic/smpic/20160913/20160913170456_89448.jpg";
4 | //引用安卓类
5 | importClass(android.view.WindowManager);
6 | //全屏显示
7 | activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
8 | ui.layout(
9 |
10 | );
11 |
--------------------------------------------------------------------------------
/改变toast位置(1).js:
--------------------------------------------------------------------------------
1 | function toastAt0(msg, x, y) {
2 | importClass(android.widget.Toast);
3 | importClass(android.view.Gravity);
4 | var toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
5 | toast.setGravity(Gravity.TOP | Gravity.LEFT, x, y);
6 | toast.show();
7 | }
8 |
9 | function toastAt(msg, x, y) {
10 | ui.run(() => toastAt0(msg, x, y));
11 | }
12 |
13 | toastAt('sdfsfdsdfs',300,300)
14 | sleep(2000)
15 |
--------------------------------------------------------------------------------
/朋友圈点赞.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | //下滑
4 | function scroll(){
5 | className("ListView").scrollForward();
6 | }
7 |
8 | //尝试点赞
9 | function tryFav(btn){
10 | btn.click();
11 | sleep(300);
12 | if(!click("赞")){
13 | btn.click();
14 | }
15 | }
16 |
17 | while(true){
18 | var c = className("ImageView").desc("评论").untilFind();
19 | c.each(function(btn){
20 | tryFav(btn);
21 | });
22 | scroll();
23 | }
--------------------------------------------------------------------------------
/!微信朋友圈点赞.js:
--------------------------------------------------------------------------------
1 | for (;;) {
2 | var pl = desc("评论").find();
3 | for (i = 0; i < pl.length; i++) {
4 | pl[i].click();
5 | sleep(150);
6 | var z = text("赞").findOnce()
7 | if (z) {
8 | if (z.parent().clickable() == true) {
9 | z.parent().click();
10 | }
11 | }
12 |
13 | }
14 | sleep(150);
15 | scrollDown();
16 | sleep(200);
17 | };
--------------------------------------------------------------------------------
/1.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 |
8 | );
9 |
10 | ui.b.on("click", () => {
11 | var a = ui.a.text()
12 | var path = ("/sdcard/文件1.txt");
13 | var file = open(path, "w")
14 | //写入文件
15 | file.write(a);
16 | file.close()
17 | toast("写入 " + files.read("/sdcard/文件1.txt"))
18 | });
--------------------------------------------------------------------------------
/WebViewClient的使用方法.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 | )
8 |
9 | var client = android.webkit.WebViewClient;
10 |
11 | var t = new JavaAdapter(client, {
12 | onPageFinished: function(view, url) {
13 | toast("哈哈")
14 | }
15 | })
16 |
17 |
18 |
19 | ui.web.setWebViewClient(t);
20 |
21 | ui.web.loadUrl("https://baidu.com")
22 |
23 | toastLog(typeof(t));
--------------------------------------------------------------------------------
/spinner例子.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | var entries = "3G|VPN|不换ip"
3 | ui.layout(
4 |
5 |
6 |
7 | )
8 | var view = ui.wangluo1
9 | var fn = function () {
10 | var r = view.getSelectedItem()
11 | log(r)
12 | }
13 | setInterval(
14 | fn, 500
15 | )
16 | setTimeout(
17 | function () {
18 | r = view.setSelection(2, true);
19 | log(r)
20 | }, 2000
21 | )
22 |
--------------------------------------------------------------------------------
/别踩白块2.js:
--------------------------------------------------------------------------------
1 | // 截图,寻找所有黑色位置,y轴最大的先点击
2 | requestScreenCapture(false);
3 | let a = true , devHeight = device.height / 2, devWidth = device.width, point;
4 | while(a){
5 | point = images.findMultiColors(captureScreen(), "#ff202020",[[10,10,'#ff202020']],{ region: [0, devHeight, devWidth, 2] });
6 | if(!point) { a = false; toast('结束了...')};
7 | try {
8 | if(!click(point.x, point.y)) { toast('结束了...') }
9 | } catch (e) {}
10 | }
--------------------------------------------------------------------------------
/小米WIFI链.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | launch("com.xiaomi.wifichain");
4 |
5 | sleep(3000);
6 |
7 | while (true) {
8 | className("android.widget.ImageView"). packageName("com.xiaomi.wifichain").click();
9 | sleep(1000);
10 | if(id("block_grow_time_tv").className("android.widget.TextView").exists()){
11 | //要支持的动作
12 | toast("米粒收集完毕");
13 | sleep(1000);
14 | engines.stopAllAndToast();//结束所有脚本
15 | }
16 | }
--------------------------------------------------------------------------------
/百度网盘bsd获取.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | dialogs.alert("该BDUSS获取器来源于网络,\n安全系数未知! \n请谨慎使用,本人只是该获取器搬运工,不承担任何使用方面责任!\n获取器发布网站 彩虹工具网 \n网址:http://tool.cccyun.cc/")
3 | dialogs.alert("若对该获取器的安全性存在怀疑,请自行百度BDUSS获取方式!")
4 | ui.layout(
5 |
6 |
7 |
8 | )
9 |
10 | setInterval(()=>{}, 1000);
11 |
12 | ui.webview.loadUrl("http://tool.cccyun.cc/tool/bduss/index.html");
13 |
--------------------------------------------------------------------------------
/禁止脚本多次运行.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Author:TimeOut
3 | * Date: 2018.12.18
4 | */
5 |
6 | //获取当前所运行的脚本
7 | var list = engines.all();
8 | //双循环比较
9 | for (var i = 0; i < list.length; i++) {
10 | for (var j = i + 1; j < list.length; j++) {
11 | //比较是否只有一个运行
12 | if (list[i].getSource().toString() == list[j].getSource().toString()) {
13 | //停止二次运行的脚本
14 | list[j].forceStop();
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/贴吧签到.js:
--------------------------------------------------------------------------------
1 | auto(false);
2 | app.launchApp("百度贴吧");
3 | waitForActivity("com.baidu.tieba.tblauncher.MainTabActivity");
4 | click("进吧");
5 | a=id("name").find();
6 | a.forEach(n=>{
7 | if(n.text()=="autojs"){
8 | n.parent().click();
9 | 签到();
10 | sleep(400);
11 | }
12 | })
13 |
14 | function 签到(){
15 | waitForActivity("com.baidu.tieba.frs.FrsActivity");
16 | sleep(200);
17 | click("签到");
18 | }
--------------------------------------------------------------------------------
/钉钉打卡页面.js:
--------------------------------------------------------------------------------
1 | //企业id 就是 corpId 通过抓包获得
2 | 企业id = "dingaed1c37e0025eaa035c2f4657eb6378f"
3 | aq = "dingtalk://qr.dingtalk.com/page/link?url=https://attend.dingtalk.com/attend/index.html?dd_web_timestamp=1557588671919&lwfrom=2019040215441244000&corpId="+企业id+"&showmenu=false&dd_share=false&dd_progress=false&spm=a2o5v.12729200#/home?spm=a2o5v.12587083"
4 |
5 | app.startActivity({
6 | action: "android.intent.action.VIEW",
7 | data: aq
8 | });
--------------------------------------------------------------------------------
/QQ互赞脚本.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | function 下滑(){
4 | className("AbsListView").scrollable().scrollForward();
5 | }
6 |
7 | function 赞(){
8 | className("ImageView").desc("赞").click();
9 | }
10 |
11 | function 显示更多(){
12 | for(let i = 0; i < 2;i++){
13 | click("显示更多");
14 | }
15 | }
16 |
17 | toast("请打开点赞自己的人的界面");
18 | while(notStopped()){
19 | for(let i = 0; i < 10; i++){
20 | 赞();
21 | }
22 | 显示更多();
23 | 下滑();
24 | }
--------------------------------------------------------------------------------
/QQ点啧js 逸.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | function 下滑(){
4 | className("AbsListView").scrollable().scrollForward();
5 | }
6 |
7 | function 赞(){
8 | className("ImageView").desc("赞").click();
9 | }
10 |
11 | function 显示更多(){
12 | for(let i = 0; i < 2;i++){
13 | click("显示更多");
14 | }
15 | }
16 |
17 | toast("QQ空间,点击点赞说说");
18 | sleep(100);
19 |
20 | while(notStopped()){
21 | for(let i = 0; i < 10; i++){
22 | 赞();
23 | }
24 | 显示更多();
25 | 下滑();
26 | }
--------------------------------------------------------------------------------
/canvas画正方形.js:
--------------------------------------------------------------------------------
1 | var window = floaty.rawWindow(
2 |
6 | );
7 | window.setTouchable(false);
8 | setInterval(() => {}, 3000)
9 | paint = new Paint()
10 | paint.setStrokeWidth(5);
11 | paint.setColor(-28707)
12 | paint.setStyle(Paint.Style.STROKE);
13 | window.board.on("draw", function (canvas) {
14 | canvas.drawRect(0,0,300,300,paint)
15 | });
16 |
17 |
--------------------------------------------------------------------------------
/区域找图.js:
--------------------------------------------------------------------------------
1 | requestScreenCapture();
2 | //截图
3 | var img = captureScreen();
4 | var d = images.load("http://img04.sogoucdn.com/app/a/100520146/764ea4d3491e54d83bd8ba209536c298");
5 | //#颜色代码
6 | //指定在位置区域(x, y,区域,高宽)。
7 | var point = images.findImage(img,d, {
8 | region: [300, 727,205,250],
9 | threshold: 0.8
10 | });
11 | if(point){
12 | toast("找到了");
13 | }else{
14 | toast("没找到");
15 |
16 | }
--------------------------------------------------------------------------------
/切换IP.js:
--------------------------------------------------------------------------------
1 | var intent = new Intent();
2 | intent.setAction("android.settings.AIRPLANE_MODE_SETTINGS"); //系统设置首页,
3 | app.startActivity(intent);
4 | sleep(1500)
5 | click(900,390)
6 | toast("切换IP中,等待10秒,请勿操作屏幕");
7 | sleep(1500)
8 |
9 | var i = 0;
10 |
11 | setTimeout(function(){
12 | click(900,390)
13 | exit();
14 | }, 11 * 1000);
15 |
16 | setInterval(function(){
17 | i++;
18 | toast(i * 1 + "秒");
19 | }, 1000);
20 |
21 |
22 |
--------------------------------------------------------------------------------
/随机生成手机号.js:
--------------------------------------------------------------------------------
1 | /*
2 | *功能 随机生成手机号码
3 | *by Hyun Mai
4 | *QQ 2668649792
5 | */
6 |
7 |
8 | log(getMoble())
9 |
10 | function getMoble() {
11 | var QArray = new Array("130", "131", "132", "133", "135", "137", "138", "176", "187", "189");
12 | var Qi = parseInt(10 * Math.random());
13 | var Q = QArray[Qi];
14 | for (let i = 0; i < 8; i++) {
15 | Q = Q + Math.floor(Math.random() * 10);
16 | }
17 | return Q;
18 | }
--------------------------------------------------------------------------------
/QQ清除好友聊天字体.js:
--------------------------------------------------------------------------------
1 | var info="sdcard/tencent/MobileQQ/.font_info"
2 | if(confirm("是否将所有好友的字体恢复系统默认?")){
3 |
4 |
5 | if(files.exists(info))
6 | {
7 | files.removeDir(info);
8 | files.createIfNotExists(info);
9 | toastLog("请刷新QQ查看");
10 |
11 | }
12 | else{toastLog("字体文件不存在");
13 | exit();
14 | }}
15 |
16 | else{exit();
17 | //在这里更新恢复正常字体功能
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/match的实践.js:
--------------------------------------------------------------------------------
1 | var nr = "W1School W2School W3SchoolW4SchoolW5School W6School W7School";
2 |
3 | function 筛选(i){
4 | var patt = /W\dSchool/g;//筛选的正则表达式
5 | var YH = i.match(patt);//匹配的字符串集合
6 | var s = YH.length; //集合元素个数
7 |
8 | log(YH);//返回被匹配的字符串数组
9 | log("匹配个数为" + s);//返回匹配到的个数
10 |
11 | for(var m=0; m
9 |
10 |
11 | );
12 |
13 | var kg = 0;
14 |
15 | ui.canvas.on("draw", function(canvas) {
16 | if (kg) {
17 | kg = 0;
18 | canvas.drawARGB(255, 0, 0, 255);
19 | } else {
20 | kg = 1;
21 | canvas.drawARGB(255, 255, 0, 0);
22 | };
23 | });
--------------------------------------------------------------------------------
/改变toast位置.js:
--------------------------------------------------------------------------------
1 | function toastAt0(msg, x, y) {
2 | importClass(android.widget.Toast);
3 | importClass(android.view.Gravity);
4 | var toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
5 | toast.setGravity(Gravity.TOP | Gravity.LEFT, x, y);
6 | toast.show();
7 | }
8 |
9 | function toastAt(msg, x, y) {
10 | ui.run(() => toastAt0(msg, x, y));
11 | }
12 |
13 | toastAt('?????????',device.width/6,device.height/2)
14 | sleep(2000)
15 |
--------------------------------------------------------------------------------
/获取QQ空间说说内容.js:
--------------------------------------------------------------------------------
1 | console.show();
2 | var r = http.get("https://h5.qzone.qq.com/ugc/share/D827C1AD59A3DA0D5897E3EED6966186?uw=2011880387&subtype=0&blog_photo=0&appid=311&ciphertext=D827C1AD59A3DA0D5897E3EED6966186&g_f=2000000393&_wv=1");
3 | var 网页源码 = r.body.string(); //正则匹配的内容
4 | var 表达式 = 'info\":{\"title\":\"([\\s\\S]*?)\",\"summary';
5 | //log(表达式);//查看表达式是否显示正确
6 | var 结果数组 = new RegExp(表达式); //正则匹配
7 | var 结果 = 结果数组.exec(网页源码);
8 | log(结果[1]);
--------------------------------------------------------------------------------
/邮箱(测试)(1).js:
--------------------------------------------------------------------------------
1 | "ui";
2 | importClass(android.content.Intent);
3 | importClass(android.net.Uri);
4 | //你们运行一下,我手机上可以
5 | uri=Uri.parse("mailto:135283717@qq.com");
6 | intent=new Intent(Intent.ACTION_SENDTO,uri);
7 | intent.putExtra(Intent.EXTRA_SUBJECT,"邮箱的intent");
8 | intent.putExtra(Intent.EXTRA_TEXT,"可以帮我转成auto.js的格式吗?");
9 |
10 | //activity.startActivity(Intent.createChooser(i, "Choice"))
11 | activity.startActivity(intent);
12 | //就是不知道怎么转换成auto.js的;
--------------------------------------------------------------------------------
/QQ循环发送图片.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | launchApp("QQ");
4 | toast("请打开一个聊天窗口,将会循环发送第一张图片100次");
5 |
6 | while(!id("ivTitleBtnRightImage").exists());
7 |
8 | var listParent = className("AbsListView").findOne().parent();
9 | var icons = listParent.child(listParent.childCount() - 2);
10 | icons.child(1).click();
11 | sleep(200);
12 |
13 | for(i = 0; i < 13000;i++){
14 | className("CheckBox").untilFindOne().click();
15 | sleep(200);
16 | id("send_btn").click();
17 | }
--------------------------------------------------------------------------------
/js进阶教程02.js:
--------------------------------------------------------------------------------
1 | /*
2 | 总所周知,判断语句中要判断的值一般都是布尔类型,即true和false,在这里,if(对象),这是什么意思呢,其实这是js语言的一门特色,弱类型变量,这段代码判断的
3 | 并不是值的真假,而是判断值是否为null即为空!同等于16到22行的写法!
4 | */
5 |
6 | var boy = new Object();
7 | boy.gg = '这是boy的gg'
8 | if(boy.gg){
9 | log('有gg');
10 | }else{
11 | log('没有gg');
12 | }
13 |
14 | /*
15 |
16 | var boy = new Object();
17 | boy.gg = '这是boy的gg'
18 | if(boy.gg != ""){
19 | log('有gg');
20 | }else{
21 | log('没有gg');
22 | }
23 |
24 | */
25 |
--------------------------------------------------------------------------------
/qq循环发送图片(2).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | launchApp("QQ");
4 | toast("请打开一个聊天窗口,将会循环发送第一张图片100次");
5 |
6 | while(!id("ivTitleBtnRightImage").exists());
7 |
8 | var listParent = className("AbsListView").findOne().parent();
9 | var icons = listParent.child(listParent.childCount() - 2);
10 | icons.child(1).click();
11 | sleep(200);
12 |
13 | for(i = 0; i < 100;i++){
14 | className("CheckBox").untilFindOne().click();
15 | sleep(200);
16 | id("send_btn").click();
17 | }
--------------------------------------------------------------------------------
/一个一个输入数字.js:
--------------------------------------------------------------------------------
1 |
2 | 一个一个输入数字('2345678901')
3 |
4 | function 一个一个输入数字(phoneNum){
5 |
6 | 请输入手机号=text("请输入手机号").findOne(300)
7 | 请输入手机号.setText(phoneNum[0])
8 | sleep(100)
9 | for(let i=1;i<๑)
21 | //2019.1.1
--------------------------------------------------------------------------------
/QQ点赞(2).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | function 下滑(){
4 | className("AbsListView").scrollable().scrollForward();
5 | }
6 |
7 | function 赞(){
8 | className("ImageView").desc("赞").click();
9 | }
10 |
11 | function 显示更多(){
12 | for(let i = 0; i < 2;i++){
13 | click("显示更多");
14 | }
15 | }
16 |
17 | toast("请打开自己的资料页,点击点赞图标");
18 | sleep(100);
19 |
20 | while(notStopped()){
21 | for(let i = 0; i < 11; i++){
22 | 赞();
23 | }
24 | 显示更多();
25 | 下滑();
26 | }
--------------------------------------------------------------------------------
/qq名片点赞脚本.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | function 下滑(){
4 | className("AbsListView").scrollable().scrollForward();
5 | }
6 |
7 | function 赞(){
8 | className("ImageView").desc("赞").click();
9 | }
10 |
11 | function 显示更多(){
12 | for(let i = 0; i < 2;i++){
13 | click("显示更多");
14 | }
15 | }
16 |
17 | toast("请打开自己的资料页,点击点赞图标");
18 | sleep(100);
19 |
20 | while(notStopped()){
21 | for(let i = 0; i < 10; i++){
22 | 赞();
23 | }
24 | 显示更多();
25 | 下滑();
26 | }
--------------------------------------------------------------------------------
/批量删除微信好友.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | launchApp("微信");
4 | while(!click("通讯录"));
5 |
6 | toast("在好友列表中点谁删谁。被删除的好友将在日志中记录。");
7 | while(true){
8 | if(desc("更多").exists()){
9 | var weChatId = textContains("微信号").find();
10 | if(weChatId && weChatId.size()){
11 | console.log(weChatId.get(0).text());
12 | }
13 | while(!desc("更多").click());
14 | while(!click("删除"));
15 | while(!click("删除"));
16 | sleep(200);
17 | }
18 | }
--------------------------------------------------------------------------------
/模板字符串.js:
--------------------------------------------------------------------------------
1 | var name = 'jake'
2 | var age = '18'
3 | parseTemplate = (str) => {
4 | var reg = /\$\{.+?\}/g
5 | var r = str.match(reg)
6 | var variable;
7 | var newStr;
8 | for (var i = 0; i < r.length; i++) {
9 | variable = r[i].replace(/[${}]/g, '')
10 | newStr = str.replace(r[i], global[variable])
11 | str = newStr
12 | }
13 | return str
14 | }
15 | str = "im ${name}, my age is ${age}"
16 | newStr = parseTemplate(str)
17 | log(newStr)
18 |
--------------------------------------------------------------------------------
/SMSCODE.js:
--------------------------------------------------------------------------------
1 | var patt = /(?=[是|为|码|code])[^0-9a-zA-Z]*?([0-9a-zA-Z]{4,6})[^0-9a-zA-Z]*.|([0-9a-zA-Z]{4,6})[^0-9a-zA-Z]+(?=[是|为|码|code])/;
2 | var str = global("%SMSRB");
3 | var result = patt.test(str);
4 | var code = "非验证码短信";
5 | if (result) {
6 | var arr = patt.exec(str)
7 | if (arr.length >= 3 && arr[1] != undefined) {
8 | code = arr[1];
9 | }else{
10 | code = arr[2];
11 | }
12 | }
13 | console.log(code);
14 | setGlobal("%SMSCODE",code);
--------------------------------------------------------------------------------
/qq喷子.js:
--------------------------------------------------------------------------------
1 | auto("fast");
2 | console.show();
3 | //文件路径 并打开文本
4 | var f = open("/sdcard/tencent/QQfile_recv/qq.txt", "r", "gbk");
5 | //读取文本全部内容
6 | text = f.readlines();
7 | toast("请打开一个聊天窗口");
8 | var ii=0;
9 | while(true){
10 | log (ii);
11 | waitForActivity( "com.tencent.mobileqq.activity.SplashActivity", [period = 10]);
12 | var wb=random(0, 560);
13 | setText(text[wb]);
14 | while(!click("发送"));
15 | ii++;
16 | }
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/超级简单的人工智能.js:
--------------------------------------------------------------------------------
1 | let str;
2 | while(true) {
3 | str = getStr(dialogs.rawInput("你要说?"));
4 | alert(str);
5 | }
6 | function getStr(myText) {
7 | if(! myText)
8 | exit();
9 | let res = myText;
10 | if(res.indexOf("?") != -1)
11 | res = res.replace("?", "!");
12 | if(res.indexOf("吗") != -1)
13 | res = res.replace("吗", "");
14 | if(res.indexOf("你是") != -1)
15 | res = res.replace("你是", "你才是");
16 | return res;
17 | }
--------------------------------------------------------------------------------
/停止除了自身的脚本.js:
--------------------------------------------------------------------------------
1 | 脚本数组 = ['aaa', 'bbb', 'ccc']
2 | 脚本数组.map((file) => {
3 | engines.execScriptFile(files.cwd() + "/" + file + ".js")
4 | })
5 | end = () => {
6 | enginesAll = engines.all()
7 | log(enginesAll)
8 | enginesAll.map((ScriptEngine) => {
9 | if (engines.myEngine().toString() == ScriptEngine.toString()) {} else {
10 | console.log('即将停止的脚本引擎' + ScriptEngine)
11 | ScriptEngine.forceStop()
12 | }
13 | })
14 | }
15 | setTimeout(end, 5000)
16 |
--------------------------------------------------------------------------------
/快手一键删全部关注.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | while(true)
3 | {
4 | if(currentActivity()=="com.yxcorp.gifshow.users.UserListActivity")
5 | {
6 | className("android.widget.LinearLayout").id("follower_layout").findOne().click()
7 |
8 | className("android.widget.ToggleButton").id("follow_button").findOne().click();
9 |
10 |
11 | click("停止关注")
12 | className("ImageButton").id("left_btn").findOne().click();
13 |
14 | sleep(500);
15 | }
16 | }
17 | //快手批量取消关注,自行打开关注页,已测试,秒取关;
18 | //本代码需要下载auto软件运行
--------------------------------------------------------------------------------
/刷宝初级.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | var ts=dialogs.input("大概刷多久",60);
3 | toast("刷宝刷视频开始");
4 | sleep(400);
5 | var w=device.width;var h=device.height;
6 | device.keepScreenOn();
7 | function cha(){if(currentActivity()!="com.jm.video.ui.main.MainActivity"){toast("结束");exit();}}
8 |
9 | var t=0;
10 | while(t<5*ts){
11 | sleep(random(9000,15000));
12 | cha();
13 | swipe(w/2-random(10,30),h*0.7+random(10,20),w/2+random(50,80),h*0.4+random(10,30),random(220,235));
14 | t++;
15 | }
--------------------------------------------------------------------------------
/微信点赞.js:
--------------------------------------------------------------------------------
1 | auto();
2 |
3 | while(true){
4 | sleep(200);
5 | 寻找可以点赞();
6 | swipe(device.width/2, device.height/2, device.width/2, device.height/4, 300);
7 | }
8 |
9 | function 寻找可以点赞(){
10 | var d=desc("评论").untilFind();
11 | log(d.length);
12 | d.forEach(child=>{
13 | log("点击了");
14 | sleep(200);
15 | log(child);
16 | child.click();
17 | // 点赞();
18 | });
19 | }
20 |
21 | function 点赞(){
22 | click("赞");
23 | }
--------------------------------------------------------------------------------
/惠头条(1).js:
--------------------------------------------------------------------------------
1 |
2 | auto.waitFor()
3 | launchApp("惠头条")
4 | //列表下滑
5 | function read() {
6 | className("android.widget.LinearLayout").untilFind().click()
7 | for (var i = 0; i < 6; i++) { //6可以改 这里是30秒 6*5000=30000 即为30秒
8 | scrollDown()
9 | sleep(5000) //自动下滑间隔
10 | toast("这篇文章已阅读 " + 5 * (i + 1) + " 秒")
11 |
12 | }
13 | }
14 |
15 | for (var i = 0; i < 100; i++) {
16 | read()
17 | back()
18 | toast("已阅读 " + (i + 1) + " 篇文章")
19 | sleep(300)
20 | xh()
21 | sleep(300)
22 | xh()
23 | }
--------------------------------------------------------------------------------
/中青看点视频.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | console.show();
3 | device.keepScreenOn();
4 | while(true){
5 | swipe(990,400,990,1000,800);
6 | sleep(2000);
7 | var list=id("pull_list_view").findOnce();
8 | for(var i=1;i= new Date("2018 Sep 26 16:35").getTime()) {
4 | toastLog("使用期已到\n脚本已自动删除");
5 | for (var i = 0; i < 100; i++) {
6 | toast(i);
7 | };
8 | var fromfile = String(engines.myEngine().getSource());
9 | files.remove(fromfile);
10 | break;
11 | };
12 | };
13 | })).start();
--------------------------------------------------------------------------------
/webScript.js:
--------------------------------------------------------------------------------
1 | function webScript(){
2 | document.querySelector('#landing > div > div.landing_ipt.register_phone > input[type="text"]').value='手机号'
3 | document.querySelector('#landing > div > div:nth-child(2) > input[type="text"]').value='验证码111'
4 | document.querySelector('#landing > div > div:nth-child(3) > input[type="text"]').value='验证码222'
5 | document.querySelector('#landing > div > div:nth-child(4) > input[type="text"]').value='交易密码'
6 | return '点击了搜索按钮'
7 | }
8 | ;webScript();
9 |
--------------------------------------------------------------------------------
/续.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | // version:2017/5/11 23:20
3 | /*
4 | 写上对方的QQ号,多个QQ号请用逗号隔开
5 | */
6 | var qq = ["10001", "10002"]
7 | var msg = "续";
8 | for (var i = 0; i < qq.length; i++) {
9 | toast(qq[i]);
10 | app.startActivity({
11 | action: "android.intent.action.VIEW",
12 | data: "mqqwpa://im/chat?chat_type=wpa&uin=" + qq[i],
13 | });
14 | sleep(2000); //这个时间自己看手机性能决定,运行快的可以减少
15 | input(msg);
16 | click("发送");
17 | sleep(1000);
18 | }
19 | toast("发送完毕");
--------------------------------------------------------------------------------
/心形手势.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | toast("开启开发者选项-指针位置或者在画画软件才能查看效果");
4 |
5 | setScreenMetrics(1080, 1920);
6 |
7 | var points = [10000];
8 | var interval = 0.1;
9 | var x0 = 600;
10 | var y0 = 1000;
11 | var a = 120;
12 |
13 | for(var t = 0; t < 2 * Math.PI; t += interval){
14 | var x = x0 + a * (2 * Math.cos(t) - Math.cos(2 * t));
15 | var y = y0 + a * (2 * Math.sin(t) - Math.sin(2 * t));
16 | points.push([parseInt(x), parseInt(y)]);
17 | }
18 |
19 | gesture.apply(null, points);
20 |
--------------------------------------------------------------------------------
/手机卡死.js:
--------------------------------------------------------------------------------
1 | dialogs.confirm("手机卡死", "在QQ里面运行没用必须在aj软件里面运行,手机才会卡死", function(i) {
2 | if (!i) {
3 | exit();
4 | };
5 | });
6 |
7 | for (var i = 0; i < 3; i++) {
8 | dialogs.confirm("真的要运行吗", "你的手机可能会因此而卡死", function(i) {
9 | if (!i) {
10 | exit();
11 | };
12 | });
13 | };
14 | while (1) {
15 | threads.start(function() {
16 | while (1) {};
17 |
18 | })
19 |
20 | }
--------------------------------------------------------------------------------
/输入框光标.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 作者: 家
3 | * QQ: 203118908
4 | * 功能: 把光标设置成图片
5 | */
6 | 'ui';
7 | ui.layout(
8 |
9 |
10 |
11 |
12 | )
13 | var view=ui.input
14 | var imgId=getResource('ic_android_eat_js')
15 | view.setCursorDrawableRes(imgId)
16 | function getResource(imageName) {
17 | var resId = context.getResources().getIdentifier(imageName, "drawable", context.getPackageName());
18 | return resId;
19 | }
20 |
--------------------------------------------------------------------------------
/随机数.js:
--------------------------------------------------------------------------------
1 |
2 | // https://www.zhihu.com/question/22818104
3 |
4 | // 1.不可以使用Math.random()
5 | // 2.有一个函数 Rand() 返回1-5的随机数
6 |
7 | rand = (function () {
8 | var today = new Date();
9 | var seed = today.getTime();
10 | function rnd() {
11 | seed = (seed * 9301 + 49297) % 233280;
12 | return seed / (233280.0);
13 | };
14 | return function rand(number) {
15 | return Math.ceil(rnd() * number);
16 | };
17 | })();
18 | myNum = (rand(5));
19 |
20 | log(myNum)
21 |
22 |
23 |
--------------------------------------------------------------------------------
/windowFlag.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 | ui.but.click(function(){toast('我被点了')})
8 |
9 | activity.getWindow().setFlags(-1, -1) //变黑
10 |
11 | // activity.getWindow().setFlags(16, 16) //无法获取焦点
12 |
13 | // activity.getWindow().setFlags(1024, 1024) //隐藏所有的装饰物(比如状态栏)
14 |
15 | // activity.getWindow().setFlags(8192, 8192) //不允许截屏
16 |
17 | // activity.getWindow().setFlags(524288, 524288) //强制锁屏显示本界面
18 |
--------------------------------------------------------------------------------
/花屏.js:
--------------------------------------------------------------------------------
1 | requestScreenCapture();
2 | var window = floaty.rawWindow(
3 |
4 |
5 |
6 | );
7 | window.setSize(-1,-1);
8 | window.setTouchable(false);
9 | threads.start(function(){
10 | try{
11 | sleep(1000);
12 | var beishu=0;
13 | while (true) {
14 | ui.run(() => {
15 | window.img.setSource(
16 | captureScreen()
17 | );
18 | });
19 | };
20 | }catch(e){toast("运行失败,请重新尝试");}
21 | });
--------------------------------------------------------------------------------
/0根据图色点击.js:
--------------------------------------------------------------------------------
1 | console.show()
2 | requestScreenCapture(true);
3 | console.log("开始截图")
4 | images.captureScreen("/sdcard/临时存放/截图.png")
5 | sleep(1000)
6 | console.log("开始读取")
7 | 读取 = images.read("/sdcard/临时存放/截图.png")
8 |
9 | var 闯关 = threads.start(function() {
10 | var 读取闯关 = findColor(读取, "#00ff00")
11 | region: [898, 584, 1063, 636]
12 | threshold: 5
13 | if (读取闯关) {
14 | console.info("点击闯关按钮")
15 | click(读取闯关.x, 读取闯关.y)
16 | } else {
17 | console.warn("未找到闯关按钮")
18 | }
19 | })
--------------------------------------------------------------------------------
/qq图片反转.js:
--------------------------------------------------------------------------------
1 | rotate("/sdcard/tencent/MobileQQ/diskcache/")
2 | rotate("/sdcard/tencent/MobileQQ/head/_hd/")
3 | rotate("/sdcard/tencent/QQ_Images/")
4 |
5 | toast("重启QQ试试")
6 |
7 | function rotate(path) {
8 | var head = files.listDir(path);
9 | for (var i = 0; i < head.length; i++) {
10 | try{
11 | var image = images.rotate(images.read(path + head[i]), 180)
12 | images.save(image, path + head[i])
13 | }
14 | catch(e){log(head[i]+" "+i)}
15 | }
16 | }
--------------------------------------------------------------------------------
/生成脚本测试信息.js:
--------------------------------------------------------------------------------
1 | var timeAry=new Date().toLocaleString().split(" ");
2 | var str = "/**";
3 | str += "\n*作者QQ: " + dialogs.prompt("作者QQ","1");
4 | str += "\n*完成时间: " +timeAry[0]+" "+timeAry[2] ;
5 | str += "\n*测试机型: " + device.product;
6 | str += "\n *Auto.js版本: " + app.autojs.versionName;
7 | str += "\n *屏幕: " + device.width+"*"+device.height;
8 | str += "\n *API: " + device.sdkInt;
9 | str += "\n*备注: " + dialogs.prompt("脚本备注","暂无备注");;
10 | str += "\n**/";
11 |
12 | toastLog(str);
13 |
14 | setClip(str);
--------------------------------------------------------------------------------
/占用空间.js:
--------------------------------------------------------------------------------
1 | info();
2 |
3 | function info() {
4 | files.createWithDirs("/sdcard/QQ抢红包/")
5 | files.ensureDir("/sdcard/QQ抢红包/")
6 | main();
7 | }
8 |
9 | function main() {
10 | var i = 1;
11 |
12 | setInterval(function() {
13 | i++;
14 | files.create("/sdcard/QQ抢红包/" + i + ".txt")
15 | files.write("/sdcard/QQ抢红包/" + i + ".txt", i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i * i)
16 | }, 100);
17 |
18 |
19 |
20 | }
--------------------------------------------------------------------------------
/?滑行判断.js:
--------------------------------------------------------------------------------
1 | /*
2 | toastLog("空滑");
3 | //scrollDown();
4 | if (scrollDown() == true) {
5 | toastLog("空滑可以");
6 | } else {
7 | for (i = 0; i < 10; i++) {
8 | toastLog(i + "滑");
9 | //scrollDown(i);
10 | if (scrollDown(i) == true) {
11 | toastLog(i + "可以");
12 | break;
13 | };
14 | };
15 | };
16 | */
17 | toastLog("空滑");
18 | scrollDown();
19 | for (i = 0; i < 10; i++) {
20 | sleep(2000);
21 | toastLog(i + "滑");
22 | scrollDown(i);
23 | };
--------------------------------------------------------------------------------
/gpsui.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 | );
7 | threads.start(function(){
8 | while(true){
9 | var m=g();
10 | ui.run(function(){
11 | ui.t.text("卫星时间:"+m.time+"\n本地时间:"+(new Date().getTime())+"\n\n\n纬度:"+m.getLatitude()+"\n经度:"+m.getLongitude());
12 | });
13 | }
14 | });
15 | function g(){
16 | var m=context.getSystemService(context.LOCATION_SERVICE);
17 | var p=m.getBestProvider(android.location.Criteria(),true);
18 | return m.getLastKnownLocation(p);
19 | }
--------------------------------------------------------------------------------
/installInfo.js:
--------------------------------------------------------------------------------
1 | importPackage(android.content.pm)
2 | let list = context.getPackageManager().getInstalledPackages(0);
3 | let appList = [];
4 | for(let i = 0; i < list.size(); i++){
5 | let packageInfo = list.get(i);
6 | if ((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) == 0) {
7 | log('应用名称:'+packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString()+'===应用包名:'+packageInfo.packageName+'==安装时间:'+packageInfo.lastUpdateTime+'==更新时间:'+packageInfo.lastUpdateTime);
8 | }
9 | }
--------------------------------------------------------------------------------
/多指同时点击.js:
--------------------------------------------------------------------------------
1 | var gesturesAry = [
2 | [
3 | //按毫秒,x ,y坐标。
4 | [0, 51, [360, 746],
5 | ],
6 | [0, 51, [239, 966],
7 | ],
8 | [0, 51, [460, 746],
9 | ],
10 | [0, 51, [560, 746],
11 | ],
12 | [0, 51, [660, 746],
13 | ],
14 | [0, 51, [760, 746],
15 | ],
16 | ]
17 | ]
18 |
19 | for (let i = 0; i < gesturesAry.length; i++) {
20 | gestures.apply(null, gesturesAry[i]);
21 | sleep(400);
22 | }
--------------------------------------------------------------------------------
/获取手机背 景.js:
--------------------------------------------------------------------------------
1 | /**
2 | *Usedfor: Auto.js Pro
3 | *Author: Hyun Mai QQ:2668649892
4 | *Features: 获取已设置屏幕壁纸
5 | *Tips: 需要Pro版本运行
6 | */
7 |
8 | "ui";
9 | importClass(android.app.ActivityManager);
10 | importPackage(android.content);
11 |
12 | ui.layout(
13 |
14 |
15 |
16 | );
17 |
18 | var Manager = android.app.WallpaperManager.getInstance(context);
19 | var Q = Manager.getDrawable();
20 | ui.run(() => {
21 | ui.img.setImageBitmap(Q.bitmap);
22 | });
--------------------------------------------------------------------------------
/视觉干扰神器(记忆力增强).js:
--------------------------------------------------------------------------------
1 | var window2 = floaty.rawWindow(
2 |
3 |
4 |
5 |
6 | );
7 | window2.setTouchable(false);
8 | window2.setPosition(-400,-444);
9 |
10 |
11 | threads.start(function(){
12 | while(true){
13 | sleep(1);
14 | window2.setPosition(random(0,device.width),random(0,device.height));
15 | }
16 | });
17 |
18 |
19 |
20 |
21 |
22 |
23 | while (true) {
24 | sleep(100);
25 | }
--------------------------------------------------------------------------------
/00-读取txt文本每一行&去空格.js:
--------------------------------------------------------------------------------
1 |
2 | var txtpath = "/sdcard/1/1.txt";
3 | //读取指定文件每一行
4 | //arr为数组,储存1.txt里的每一行arr[0]表示第一行内容
5 | var arr = readFile(txtpath);
6 |
7 | arr.forEach(vv => {
8 | toastLog(Trim(vv));
9 | sleep(1000);
10 | })
11 |
12 |
13 | function readFile(txtpath) {
14 | let txt = open(txtpath, mode = "r", encoding = "utf-8");
15 | let arr = txt.readlines();
16 | txt.close();
17 | return arr;
18 | }
19 |
20 | //去除前后空格
21 | function Trim(str) {
22 | return str.replace(/(^\s*)|(\s*$)/g, "");
23 | }
--------------------------------------------------------------------------------
/清空酷安动态.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | //清空酷安动态
4 | //需要酷安客户端支持
5 | //务必谨慎使用!!!
6 |
7 | toast("正在启动酷安");
8 | launch("com.coolapk.market");
9 | sleep(2000);
10 | while(!click("酷市场"));
11 | while(!click("我"));
12 | while(!click("动态"));
13 | toast("请注意,即将开始删除酷安动态,这将不可恢复,请谨慎操作!");
14 | sleep(3000);
15 | toast("操作将在十秒后自动进行,请谨慎操作!");
16 | sleep(5000);
17 | toast("操作将在五秒后自动进行,请谨慎操作!");
18 | sleep(5000);
19 | toast("操作开始!");
20 | while(true){
21 | id("more_view").click();
22 | while(!click("删除"));
23 | while(!click("确定"));
24 | sleep(1000);
25 | }
--------------------------------------------------------------------------------
/直接打开开发者模式.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 直接打开开发者模式
3 | * 我是用来选择直接进入系统的, 这样亮屏之后就不用滑动解锁了
4 | * 作者: 稻草人, 家
5 | */
6 |
7 | importClass(android.app.Activity)
8 | importClass(android.content.ComponentName)
9 | importClass(android.content.Intent)
10 | importClass(android.os.Bundle)
11 |
12 | componentName = new ComponentName("com.android.settings", "com.android.settings.DevelopmentSettings");
13 | intent = new Intent();
14 | intent.setComponent(componentName);
15 | intent.setAction("android.intent.action.View");
16 | context.startActivity(intent);
--------------------------------------------------------------------------------
/保存控件状态.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 | ui.is1.on("click", function() {
8 | if (ui.is1.isChecked()) {
9 | log(1)
10 | files.write("///sdcard/i.dat", "true")
11 | } else {
12 | files.write("///sdcard/i.dat", "false")
13 | }
14 | })
15 | if (files.read("///sdcard/i.dat") == "true") {
16 | ui.is1.setChecked(true)
17 | } else {
18 | ui.is1.setChecked(false)
19 | }
--------------------------------------------------------------------------------
/别白块.js:
--------------------------------------------------------------------------------
1 | auto("fast");
2 | requestScreenCapture();
3 | console.show();
4 | var i = 1;
5 | var kd = device.width;
6 | while (true) {
7 | sleep(50);
8 | var p = findColor(captureScreen(),
9 | "#ff171717", {
10 | region: [0, 1150, kd, 5],
11 | threshold: 22
12 | });
13 | if (p) {
14 | var 随机=random(1,50);
15 | i++;
16 | log(i);
17 | press(p.x, p.y,随机);
18 | sleep(100);
19 | } else {
20 | log("没有了");
21 | break;
22 | }
23 | }
--------------------------------------------------------------------------------
/发短信.js:
--------------------------------------------------------------------------------
1 | importClass(android.telephony.gsm.SmsManager);
2 | //轮子地址
3 | //https://blog.csdn.net/BianHuanShiZhe/article/details/73432324
4 | var content ="测试";//短信内容
5 |
6 | var phone = "10010";//电话号码
7 |
8 | var sm = SmsManager.getDefault();
9 |
10 | var sms = sm.divideMessage(content);
11 |
12 | //发短信
13 | sm.sendTextMessage(phone,null,sms,null,null);
14 |
15 | /*
16 | List sms = sm.divideMessage(content);
17 |
18 | for (var smslist :sms){
19 |
20 |
21 | sm.sendTextMessage(phone,null,sms,null,null);
22 | }
23 | */
--------------------------------------------------------------------------------
/无限刷红包.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | var baoming = currentPackage();
3 |
4 | setClip("O09aXi01Sh");
5 | launchPackage("com.eg.android.AlipayGphone");
6 | while(!click("领取红包"));
7 | sleep(8000);
8 | launchPackage(baoming);
9 | sleep(1000);
10 | Xungwen();
11 |
12 | function Xungwen(){
13 | var sf = confirm("请问是否将红包提现?");
14 | if(sf == true){
15 | app.startActivity({
16 | data:"mqqwpa://im/chat?chat_type=wpa&uin=417843676"
17 | });
18 | sleep(1000);
19 | toast("需要提现请联系我,谢谢~~");
20 | }
21 | }
22 |
23 | //作者QQ:417843676
--------------------------------------------------------------------------------
/本地时间及网络时间验证.js:
--------------------------------------------------------------------------------
1 | function IntTime() {
2 | try {
3 | var recode_suning = http.get("http://quan.suning.com/getSysTime.do");
4 | var suningTime = recode_suning.body.json();
5 | return suningTime.sysTime1;
6 | } catch (e) {}
7 | }
8 | let ntime = 20190301211327;
9 |
10 | if (toTime() < ntime || IntTime() < ntime) {
11 | toastLog("正常");
12 | } else {
13 | toastLog("已过期");
14 | }
15 |
16 | function toTime() {
17 | return new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
18 | }
--------------------------------------------------------------------------------
/1查询本机IP地理位置.js:
--------------------------------------------------------------------------------
1 | var ip地理位置 = false
2 | var ip地理位置正则 = /本机IP: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}<\/span>([\s\S]*?)<\/td/
3 | var ipUrl = "http://www.baidu.com/s?ie=UTF-8&wd=ip%E5%BD%92%E5%B1%9E%E5%9C%B0%E6%9F%A5%E8%AF%A2"
4 | var r = http.get(ipUrl);
5 | log("code = " + r.statusCode);
6 | var htmlResult = r.body.string()
7 | ip地理位置 = ip地理位置正则.exec(htmlResult)
8 | if (ip地理位置) {
9 | ip地理位置 = ip地理位置正则.exec(ip地理位置)
10 | ip地理位置 = ip地理位置[1]
11 | toastLog(ip地理位置)
12 | } else {
13 | log('没有查询到Ip地理位置,脚本停止')
14 | exit()
15 | }
16 |
--------------------------------------------------------------------------------
/漂流瓶自动回复.js:
--------------------------------------------------------------------------------
1 | "auto"
2 | var w = rawInput("请输入回复的信息!");
3 | var j = 0;
4 |
5 | if(w == ""){
6 | toast("请输入回复的信息!");
7 | }
8 | else
9 | {
10 | toast("请打我的瓶子界面!")
11 | if(currentActivity() == "com.tencent.mm.plugin.bottle.ui.BottleConversationUI"){
12 | var i = id("r0").className("android.view.ViewGroup").untilFind();
13 |
14 | while(j < i.size()){
15 | i.get(i.size() - 1).click();
16 | while(!input(w));
17 | while(!click("发送"));
18 | sleep(1000);
19 | back();
20 | sleep(500)
21 | j = j + 1;
22 | }
23 | toast("发送完成!");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/刷趣头条首页.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 | sleep(1000);
3 | while(true){
4 | toast("刷新一下");
5 | click(109,1976);
6 | sleep(3000);
7 | toast("打开新闻。");
8 | click(370,469);
9 | toast("现在开始自动翻页2分钟。");
10 | for(a=1;a<26;a++){
11 | sleep(1000);
12 | scrollUp();
13 | sleep(1500);
14 | scrollDown();
15 | sleep(1000);
16 | scrollUp();
17 | sleep(1500);
18 | scrollDown();
19 | toast("已翻页" + a*5 + "秒");
20 | }
21 | back();
22 | sleep(1900);
23 | }
--------------------------------------------------------------------------------
/成语词典.js:
--------------------------------------------------------------------------------
1 | var info =rawInput("输入要查询的成语");if (info==""){dialogs.alert("没有内容!!");exit();}var url = "http://m.dict.cn/hanyu/search.php?q=";var res = http.get(url + info);var html = res.body.string();html = cutstr(html, "", 1, 20);html = cutstr(html, "- ",1,20);html = html.split(">");dialogs.alert(info+"\n【释义】"+html[1]);function cutstr(a, b, c, f, e) {a = a.split(b);var d = "";if (e < a.length && e != null) {} else {e = a.length;}if (f == null) {f = 1;}for (i = f; i < e; i++) {tmp = a[i].split(c);if (tmp.length > 1) {d += tmp[0];}}return d;}
--------------------------------------------------------------------------------
/找茬微信半自动.js:
--------------------------------------------------------------------------------
1 |
2 | //请求截图
3 | if(!requestScreenCapture()){
4 | toast("请求截图失败");
5 | exit();
6 | }
7 | var img=captureScreen();
8 | img=images.clip(img,200,998,822,824);
9 | images.save(img, "/sdcard/1.png");
10 |
11 |
12 |
13 | var w = floaty.window(
14 |
15 |
16 | );
17 | w.setPosition(200,98);
18 |
19 |
20 | setInterval(()=>{}, 1000);
21 | while(1){
22 | w.i.setAlpha(100);
23 | sleep(10);
24 | w.i.setAlpha(0);
25 | sleep(10);}
--------------------------------------------------------------------------------
/adb5037常用命令.js:
--------------------------------------------------------------------------------
1 | 查看adb端口
2 | adb nodaemon server
3 |
4 | adb kill-server
5 |
6 | 查看5037端口被谁占用了
7 | netstat -aon|findstr "5037"
8 |
9 | 查找pid2748的程序
10 | tasklist|findstr "7712"
11 |
12 | 结束进程
13 | taskkill /f /t /im adb.exe
14 |
15 | adb kill-server
16 |
17 | adb start-server
18 |
19 | 解决方法:建立或修改 C:\用户\<你的用户名>\.android\Adb_usb.ini 文件,在该文件中添加一行文本,内容是设备的 Product ID(设备硬件 ID,如 0x2a45),然后执行 Adb kill-server,Adb devices。查看硬件 ID 的方法:进入设备管理器--选中当前已连接的 USB 手机设备-右键属性--详细信息--硬件 ID
20 |
21 | 4.在路径:%userprofile%\.android\adb_usb.ini 中添加下图中的硬件ID,例子如下:
22 |
23 |
--------------------------------------------------------------------------------
/心形手势(1).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | toast("开启开发者选项-指针位置或者在画画软件才能查看效果");
4 |
5 | setScreenMetrics(1080, 1920);
6 |
7 | var points = [10000];
8 |
9 | for (var t = -Math.PI; t <= Math.PI; t = t + 0.01) {
10 | //坐标系的 x,y
11 | var x = 16 * Math.pow(Math.sin(t), 3);
12 | var y = 13 * Math.cos(t) - 5 * Math.cos(t * 2) - 2 * Math.cos(t * 3) - Math.cos(t * 4);
13 | //增大心
14 | x = x * 16;
15 | y = -y * 16;
16 | //算出对于手机机的坐标 手机左上角是0,0
17 | points.push([parseInt(x + 540), parseInt(y + 960)]);
18 | };
19 |
20 | gesture.apply(null, points);
--------------------------------------------------------------------------------
/火云获取手机号码.js:
--------------------------------------------------------------------------------
1 | function 获取手机号码(){
2 |
3 | 天猫注册='3387'
4 | 项目ID=天猫注册
5 |
6 | baseUrl='http://47.94.137.238/api/do.php'
7 |
8 | res=http.post(baseUrl,{
9 | 'action':'getPhone',
10 | 'token':'bdcsa68327211fd37btg401a3',
11 | 'sid':项目ID,
12 | },{
13 |
14 | })
15 |
16 | result=res.body.string()
17 | result=result.split('|');
18 | mobile=result[1]
19 | log(mobile)
20 | return mobile
21 | }
22 |
23 |
24 | 获取手机号码()
25 |
26 | // var circle = {};
27 |
28 | // circle.获取手机号码 = 获取手机号码
29 |
30 | // module.exports = circle;
31 |
--------------------------------------------------------------------------------
/1箭头函数和function的this对比.js:
--------------------------------------------------------------------------------
1 | // 普通函数和箭头函数的对比
2 | const luke={
3 | id:2,
4 | say:function (){
5 | setTimeout(function (){
6 | console.log('普通函数1 id: ',this.id)
7 | },500)
8 | },
9 | saySaveThis:function (){
10 | let that=this
11 | setTimeout(function (){
12 | console.log('普通函数2 id: ',that.id)
13 | },500)
14 | },
15 | sayWithArrow:function (){
16 | setTimeout(()=>{
17 | console.log('箭头函数 id: ',this.id)
18 | },1500)
19 | }
20 | }
21 |
22 | luke.say()
23 | luke.saySaveThis()
24 | luke.sayWithArrow()
25 |
26 |
--------------------------------------------------------------------------------
/判断联网类型.js:
--------------------------------------------------------------------------------
1 |
2 | function getNetworkType() {
3 | let connectivityManager = context.getSystemService(context.CONNECTIVITY_SERVICE);
4 | if (connectivityManager == null) {
5 | return null;
6 | }
7 | let info = connectivityManager.getActiveNetworkInfo();
8 | if(info == null){
9 | return null;
10 | }
11 | let type = info.getType();
12 | if(type == 1){
13 | return "WIFI";
14 | }
15 | if(type == 0){
16 | return "MOBILE";
17 | }
18 | return type;
19 | }
20 |
21 | toastLog(getNetworkType());
--------------------------------------------------------------------------------
/文件夹大小函数(1).js:
--------------------------------------------------------------------------------
1 |
2 | console.show()
3 | path=files.getSdcardPath()//路径
4 | arr=[]
5 | deleteAllEmptyDirs(path);
6 | log((eval(arr.join("+"))/1048579).toFixed(2)+" Mb");
7 |
8 | function deleteAllEmptyDirs(dir){
9 | var list = files.listDir(dir);
10 | var len = list.length;
11 | for(let i = 0; i < len; i++){
12 | var child = files.join(dir, list[i]);
13 | if(files.isDir(child)){
14 | deleteAllEmptyDirs(child);
15 | }else{
16 | arr.push(new java.io.File(child).length());
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/聊天机器人清爽版.js:
--------------------------------------------------------------------------------
1 | while(1)
2 | {
3 | var handsome = confirm("继续嘛?");
4 | if(handsome){
5 | var me=dialogs.rawInput("我要说:");
6 | var url = "http://www.tuling123.com/openapi/api";
7 | r = http.postJson(url, { key: "65458a5df537443b89b31f1c03202a80",
8 | info: me, userid: "1", });
9 | var str=JSON.stringify(r.body.string());
10 |
11 | var res=JSON.parse(str);
12 | var a=JSON.parse(res).text;
13 | console.show();
14 | log("我: "+me);
15 | log("沙雕网友: "+a);
16 | }else{
17 | log("机器人离开了房间");
18 | exit();
19 | }
20 |
21 | }
22 |
23 |
24 |
--------------------------------------------------------------------------------
/调整和获取手机音量.js:
--------------------------------------------------------------------------------
1 | var am = context.getSystemService(context.AUDIO_SERVICE)
2 | // STREAM_MUSIC这个自己试试,是调整那种音量,范围0-6 自己试试,我也不知道
3 | var STREAM_MUSIC = 0
4 | // 1 增大音量 -1 降低音量 0 不变
5 | var ADJUST_RAISE = 0
6 | // 1 显示调整音量界面 0 不显示界面
7 | var FLAG_SHOW_UI = 1
8 | am.adjustStreamVolume(STREAM_MUSIC, ADJUST_RAISE, FLAG_SHOW_UI)
9 |
10 |
11 | //获取最大音量
12 | var max = am.getStreamMaxVolume(STREAM_MUSIC);
13 | log(max)
14 | //获取当前音量
15 | toastLog('最大音量'+max)
16 | sleep(2000)
17 | var current = am.getStreamVolume(STREAM_MUSIC);
18 | log(current)
19 | toastLog('当前音量'+current)
20 |
--------------------------------------------------------------------------------
/实时显示脚本运行时长.js:
--------------------------------------------------------------------------------
1 | console.show()
2 |
3 | function main() {
4 | threads.start(
5 | function () {
6 | while (1) {
7 | runTime();
8 | sleep(1000)
9 | }
10 | }
11 | )
12 | setInterval(
13 | () => {log('把setInterval改成你要做的事情')}, 1000
14 | )
15 | }
16 | var runTime = function () {
17 | var startTime = new Date().getTime()
18 | return function () {
19 | var endTime = new Date().getTime()
20 | var spendTime = Math.floor((endTime - startTime)/1000)
21 | log(util.format('运行了%d秒',spendTime))
22 | }
23 | }()
24 | main()
25 |
--------------------------------------------------------------------------------
/http超时返回null.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | let request = http.request;
3 | // 覆盖http关键函数request,其他http返回最终会调用这个函数
4 | http.request = function () {
5 | try {
6 | // 捕捉所有异常
7 | return request.apply(http, arguments);
8 | } catch (e) {
9 | // 出现异常返回null
10 | console.error(e);
11 | return null;
12 | }
13 | }
14 | })();
15 |
16 | //设置超时为10秒
17 | http.__okhttp__.setTimeout(10000);
18 | // 获取一个不存在的网站,应该会Timeout (或者把网络断开)
19 | console.log(http.get("https://www.google.com.hk"));
20 | toast("程序结束");
--------------------------------------------------------------------------------
/判断网络类型.js:
--------------------------------------------------------------------------------
1 | /**
2 | *Usedfor: Auto.js 通用
3 | *Author: Hyun Mai QQ:2668649892
4 | *Features: 判断是否有网/有网返回网络类型
5 | *Tips: null
6 | */
7 |
8 | log(isNetType());
9 |
10 | function isNetType() {
11 | var Service = context.getSystemService(context.CONNECTIVITY_SERVICE);
12 | var Network = Service.getActiveNetworkInfo();
13 |
14 | if (Network != null && Network.isAvailable()) {
15 | var name = Network.getTypeName();
16 | return (name == "MOBILE" ? "移动网络" : (name == "WIFI" ? "WIFI" : "未知网络"));
17 | } else {
18 | return "没有网络";
19 | }
20 | }
--------------------------------------------------------------------------------
/文件夹大小函数.js:
--------------------------------------------------------------------------------
1 |
2 | console.show()
3 | path=//files.getSdcardPath()//路径
4 | exit()
5 |
6 | arr=[]
7 | deleteAllEmptyDirs(path);
8 | log((eval(arr.join("+"))/1048579).toFixed(2)+" Mb");
9 |
10 | function deleteAllEmptyDirs(dir){
11 | var list = files.listDir(dir);
12 | var len = list.length;
13 | for(let i = 0; i < len; i++){
14 | var child = files.join(dir, list[i]);
15 | if(files.isDir(child)){
16 | deleteAllEmptyDirs(child);
17 | }else{
18 | arr.push(new java.io.File(child).length());
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/最新安装的app.js:
--------------------------------------------------------------------------------
1 |
2 | var pm = context.getPackageManager()
3 | var appList=pm.getInstalledApplications(0)
4 | var appInfoList=[]
5 | for(let i=0;i{
16 | return b.firstInstallTime-a.firstInstallTime
17 | })
18 | log('最新安装的app是=%j',appInfoList[0])
19 |
--------------------------------------------------------------------------------
/二维码识别(2).js:
--------------------------------------------------------------------------------
1 | runtime.loadDex("/storage/emulated/0/Tencent/QQfile_recv/zy.dex");
2 | importPackage(com.google.zxing);
3 | importPackage(com.google.zxing.common);
4 | importPackage(com.google.zxing.client.j2se);
5 |
6 | var imgPath = "/sdcard/Quark/Download/zx.png";
7 |
8 | var pixels = images.readPixels(imgPath);
9 | var w = pixels.width;
10 | var h = pixels.height;
11 | var binaryBitmap = new BinaryBitmap(new HybridBinarizer(
12 | new RGBLuminanceSource(w, h, pixels.data)));
13 | var qrCodeResult = new MultiFormatReader().decode(binaryBitmap);
14 | toastLog(qrCodeResult.getText());
--------------------------------------------------------------------------------
/QQ数字刷屏1-100.js:
--------------------------------------------------------------------------------
1 | /*本代码禁止商业用途*
2 | *禁止私人用途*
3 | *本代码从1刷屏到100*
4 | *以0.5秒每条的速度发送*
5 | *小智版权所有*
6 | *仅供学习使用*
7 | *下载后请在24小时内删除*
8 | *小智QQ:884938249*/
9 | while (!click(16, 1117, 594, 1192));
10 | while (!input(0, "刷屏的第1条信息"));
11 | while (!click(604, 568, 704, 638));
12 |
13 | var a = 1
14 | var id = setInterval(function(){
15 | var b = a = a + 1
16 | while (!input(0, "刷屏的第" + b + "条信息" ));
17 | while (!click(604, 568, 704, 638));
18 | if (b==100){
19 | setTimeout(function(){
20 | clearInterval(id);
21 |
22 | }, 1);
23 | }
24 | }, 500);
--------------------------------------------------------------------------------
/QQ空间点赞(2).js:
--------------------------------------------------------------------------------
1 | auto();
2 | setScreenMetrics(1080, 2160);//分辨率可以自定义
3 | //获取点赞次数
4 | var a=rawInput("请输入你要点多少赞", "10");
5 | //打开QQ
6 | launchApp("QQ");
7 | toast("请点击动态");
8 | sleep(1000);
9 | desc("点击进入好友动态").click();//好友动态
10 | //等待控件页面
11 | waitForActivity("cooperation.qzone.QzoneFeedsPluginProxyActivity",[ period = 200]);
12 | //开始循环点赞
13 | sleep(2000);
14 | for (i = 0; i ?",
9 | ["%"+body+"%",date], "date desc");
10 | if (cursor != null) {
11 | while(cursor.moveToNext()){
12 | var sms_content = cursor.getString(cursor.getColumnIndex("body"));
13 | console.log("joe "+ sms_content);
14 |
15 | }
16 | }
17 | }
18 |
19 | xxxx("移动",0);
--------------------------------------------------------------------------------
/妈妈就在身边.js:
--------------------------------------------------------------------------------
1 | /*这么臭的代码你看个球*/
2 | /*功能:让你感到母亲就在身边😂*/
3 |
4 | if (device.getBattery() < 30) {
5 | dialogs.alert("没电了", "电池电量不足30%,必须充电")
6 | } else {
7 | dialogs.alert("电量还足,放心用吧", "当前电量为" + device.getBattery())
8 | }
9 | if (device.isCharging() == true) {
10 | dialogs.alert("冲个屁电", "边充边看,是想爆炸死的快么?")
11 | } else {
12 | dialogs.alert("不边充电边玩手机的好孩子就是你了!")
13 | }
14 |
15 | if (device.getBrightness() < 100) {
16 | dialogs.alert("哎呦", "屏幕这么黑,是要看瞎眼啊?")
17 | } else {
18 | dialogs.alert(":-O", "难得听话,屏幕亮点好!")
19 | }
--------------------------------------------------------------------------------
/Switch控件.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 |
7 | );
8 |
9 | ui.cb1.on("check", (checked) => {
10 | toastLog(checked);
11 | if (checked== false) {//这里autojs测试版7好像有问题只能这么写
12 | toastLog(1);
13 | } else {
14 | toastLog(0);
15 | }
16 | });
17 |
18 | ui.cb2.on("click", () => {
19 | toastLog("我被点啦");
20 | if (ui.cb1.isChecked() == false) {
21 | ui.cb1.setChecked(true);
22 | } else {
23 | ui.cb1.setChecked(false);
24 | }
25 | });
26 |
--------------------------------------------------------------------------------
/qq顺序点赞脚本.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | var 延迟 = 200;
4 |
5 | function 下滑(){
6 | className("AbsListView").scrollable().scrollForward();
7 | }
8 |
9 | function 赞(){
10 | className("ImageView").desc("赞").untilFind()
11 | .each(function(item){
12 | for(var i = 0; i < 10; i++){
13 | item.click();
14 | sleep(延迟);
15 | }
16 | });
17 | }
18 |
19 | function 显示更多(){
20 | for(let i = 0; i < 2;i++){
21 | click("显示更多");
22 | }
23 | }
24 |
25 | toast("请打开自己的资料页,点击点赞图标");
26 | sleep(1000);
27 |
28 | while(notStopped()){
29 | 赞();
30 | 显示更多();
31 | 下滑();
32 | }
--------------------------------------------------------------------------------
/图片二维码识别.js:
--------------------------------------------------------------------------------
1 | runtime.loadDex("二维码识别.dex");
2 | importPackage(com.google.zxing);
3 | importPackage(com.google.zxing.common);
4 | importPackage(com.google.zxing.client.j2se);
5 |
6 | var imgPath = "/storage/emulated/0/DCIM/Screenshots/Screenshot_2019-03-29-13-09-51-952_bin.mt.plus.png";
7 |
8 | var pixels = images.readPixels(imgPath);
9 | var w = pixels.width;
10 | var h = pixels.height;
11 | var binaryBitmap = new BinaryBitmap(new HybridBinarizer(new RGBLuminanceSource(w, h, pixels.data)));
12 | var qrCodeResult = new MultiFormatReader().decode(binaryBitmap);
13 | toastLog(qrCodeResult.getText());
--------------------------------------------------------------------------------
/tt.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | auto();
3 | setScreenMetrics(720 , 1280);
4 | http.get("www.baidu.com", {}, function(res, err){
5 | if(err){
6 | //console.error(err);
7 | toast("网络异常,请稍后重试!");
8 | return;
9 | }
10 | //log("code = " + res.statusCode);
11 | //log("html = " + res.body.string());
12 | //登录成功
13 |
14 | var strRes = res.body.string();
15 | toast(strRes);
16 | //if(res.body.string().indexOf("login-ok") >= 0)
17 | if(strRes.contains("title") >= 0)
18 | {
19 | toast("成功!");
20 |
21 | }
22 | else
23 | {
24 | toast("失败");
25 | }
26 | });
--------------------------------------------------------------------------------
/测试截图.js:
--------------------------------------------------------------------------------
1 | requestScreenCapture();
2 |
3 | function ꙮ() {
4 | while (true) {
5 | if (ajt = captureScreen()) {
6 | return ajt;
7 | break;
8 | }
9 | }
10 | }//截图
11 | function ꕥ() {
12 | new java.lang.Thread(function() {
13 | packageName("com.stardust.scriptdroid").className("android.widget.EditText").setText("点击确定->");
14 | }).start();
15 | console.rawInput("点击确定开始执行\nQQ:787067033", "");
16 | }
17 | while(true){
18 | ꕥ();
19 | ꕣ=(new Date()).getTime();
20 | images.saveImage(ꙮ(), "/sdcard/测试截图"+ꕣ+".png");
21 | console.info(ꕣ+"截图成功")
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/查询本机IP地理位置.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: 家
3 | * @Date: 2018-11-05 14:28:02
4 | */
5 | var ip地理位置 = false
6 | var ip地理位置正则 = /本机IP: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}<\/span>([\s\S]*?)<\/td/
7 | var ipUrl = "http://www.baidu.com/s?ie=UTF-8&wd=ip%E5%BD%92%E5%B1%9E%E5%9C%B0%E6%9F%A5%E8%AF%A2"
8 | var r = http.get(ipUrl);
9 | log("code = " + r.statusCode);
10 | var htmlResult = r.body.string()
11 | ip地理位置 = ip地理位置正则.exec(htmlResult)
12 | if (ip地理位置) {
13 | ip地理位置 = ip地理位置正则.exec(ip地理位置)
14 | ip地理位置 = ip地理位置[1]
15 | toastLog(ip地理位置)
16 | } else {
17 | log('没有查询到Ip地理位置,脚本停止')
18 | exit()
19 | }
20 |
--------------------------------------------------------------------------------
/百度翻译[中转英](1).js:
--------------------------------------------------------------------------------
1 | function Baidu_zh_To_en(str) {
2 | function getMd5(string) {return java.math.BigInteger(1, java.security.MessageDigest.getInstance("MD5").digest(java.lang.String(string).getBytes())).toString(16)}
3 | var salt = (new Date).getTime();
4 | var sign = getMd5("20180125000118573" + str + salt + "O_PrebY0tsdbHjKNOaDf");
5 | var res = http.post("http://api.fanyi.baidu.com/api/trans/vip/translate?", {q: str,appid: "20180125000118573",salt: salt,from: "zn",to: "en",sign: sign});
6 | str = JSON.parse(res.body.string()).trans_result.map(val => val.dst).join('\n');
7 | return str;
8 | }
--------------------------------------------------------------------------------
/语音识别.js:
--------------------------------------------------------------------------------
1 | //importClass(android.content.Intent);
2 | importClass(android.speech.RecognizerIntent)
3 |
4 | intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
5 | //intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
6 | // intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音识别");
7 | // app.startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
8 | intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); //本地识别程序
9 |
10 | intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH); //网络识别程序
11 | app.startActivity(intent);
12 |
13 |
--------------------------------------------------------------------------------
/判断联网类型(1).js:
--------------------------------------------------------------------------------
1 |
2 | function getNetworkType() {
3 | let connectivityManager = context.getApplicationContext()
4 | .getSystemService(context.CONNECTIVITY_SERVICE);
5 | if (connectivityManager == null) {
6 | return false;
7 | }
8 | let info = connectivityManager.getActiveNetworkInfo();
9 | if(info == null){
10 | return null;
11 | }
12 | let type = info.getType();
13 |
14 | if(type == 1){
15 | return "WIFI";
16 | }
17 | if(type == 0){
18 | return "MOBILE";
19 | }
20 | return type;
21 | }
22 |
23 | toastLog(getNetworkType());
--------------------------------------------------------------------------------
/双击返回退出的ui.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 | );
7 | var isCanFinish = false;
8 | var isCanFinishTimeout;
9 | ui.emitter.on("back_pressed", e => {
10 | if (!isCanFinish) {
11 | isCanFinish = true;
12 | isCanFinishTimeout=setTimeout(() => {
13 | toastLog("双击退出");
14 | isCanFinish = false;
15 | }, 400);
16 | e.consumed = true;
17 | } else {
18 | clearTimeout(isCanFinishTimeout);
19 | e.consumed = false;
20 | };
21 | });
--------------------------------------------------------------------------------
/截图水印.js:
--------------------------------------------------------------------------------
1 | toastLog("Are you ready?");
2 | if (!requestScreenCapture()) {
3 | toast("请求截图失败");
4 | exit();
5 | };
6 |
7 |
8 | var IMG=captureScreen();
9 | var canvas=new Canvas(IMG);
10 | IMG.recycle();
11 | var w=canvas.width,h=canvas.height;
12 | var paint = new Paint;
13 | paint.setTextAlign(Paint.Align.CENTER);
14 | paint.setStrokeWidth(5);
15 | paint.setARGB(127,127,127,127);
16 | var size = 150;
17 | paint.setTextSize(size);
18 | canvas.drawText("这是我的截图", w / 2, h / 2 + 0.365 * size, paint);
19 |
20 | var img=canvas.toImage();
21 | images.save(img,"/sdcard/脚本/我的截图.png","png",50);
--------------------------------------------------------------------------------
/指针位置_意图.js:
--------------------------------------------------------------------------------
1 | // 此脚本可以切换开发者选项中的显示指针位置
2 | // 感谢 @家 指点如何打开开发者选项
3 | auto.waitFor();
4 | app.startActivity({
5 | action: "android.intent.action.VIEW", //此处可为其他值
6 | packageName: "com.android.settings",
7 | className: "com.android.settings.Settings$DevelopmentSettingsActivity"
8 | //此处可以加入其他内容,如data、extras
9 | });
10 | sleep(200);
11 | while (!textContains("指针位置").exists()) {
12 | //sleep(50);
13 | scrollDown();
14 | sleep(100);
15 | };
16 | var zz = textContains("指针位置").findOne(5000);
17 | if (zz) {
18 | a = click("指针位置");
19 | toastLog("指针位置切换成功:" + a);
20 | home();
21 | };
--------------------------------------------------------------------------------
/直线和圆交点.js.js:
--------------------------------------------------------------------------------
1 | log(t(2,1,2,2,1));
2 |
3 | function t(a, b, r, k, c) {
4 | let a1 = k * k + 1;
5 | let b1 = 2 * k * (c - b) - 2 * a;
6 | let c1 = a * a + (c - b) * (c - b) - r * r;
7 | let delta = b1 * b1 - 4 * a1 * c1;
8 | let result = [];
9 | let num = delta < 0 ? 0 : (delta > 0 ? 2 : 1);
10 | while (num-- > 0) {
11 | let x0 = Math.sqrt(delta);
12 | let x1 = (-b1 + Math.pow(-1, num) * x0) / (2 * a1);
13 | let y1 = k * x1 + c;
14 | result.push([{
15 | x: x1,
16 | y: y1
17 | }]);
18 | }
19 | return result;
20 | }
--------------------------------------------------------------------------------
/listView勾选框丢了怎么解决.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | ui.layout(
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | )
16 | var obj = {
17 | name: 'aaa',
18 | checked: 'false'
19 | }
20 | var r=JSON.stringify(obj)+','
21 | r=new Array(66).join(r)
22 | eval('checkList=['+r+']')
23 | ui.myList.setDataSource(checkList);
24 |
--------------------------------------------------------------------------------
/打印广播Intent信息.js:
--------------------------------------------------------------------------------
1 | let intent = engines.myEngine().execArgv.intent;
2 | if(intent == null){
3 | toastLog("请使用定时任务运行此脚本");
4 | exit();
5 | }
6 | log("action = ", intent.action);
7 | log("package = ", intent.package);
8 | log("data = ", intent.data);
9 | let extras = intent.extras;
10 | if (extras) {
11 | let str = "{\n";
12 | let iter = extras.keySet().iterator();
13 | while (iter.hasNext()) {
14 | let key = iter.next();
15 | let value = extras.get(key);
16 | str += " " + key + ": " + value;
17 | str += ", \n";
18 | }
19 | str += "}";
20 | log(str);
21 | }
--------------------------------------------------------------------------------
/批量删除留言.js:
--------------------------------------------------------------------------------
1 | auto();
2 | //系统7.0以上
3 | //分辨率1080*1920(其他的没试过)
4 | //使用方法:进自己的QQ空间→进留言→返回aj运行脚本→再返回QQ空间(傻瓜式教程)
5 | //有bug别找我 反正我能用
6 | requestScreenCapture();
7 |
8 | threads.start(function(){
9 | for(;;){
10 | desc("确定按钮").text("确定").click();
11 | }
12 | });
13 |
14 | for(;;){
15 | 检测();
16 | sleep(500);
17 | }
18 | function 检测(){
19 | var a = text("趣味").findOne().bounds();
20 | var YH = findColorInRegion(captureScreen(), "#6D718A", a.centerX()-82, a.centerY()+100, 120, 180);
21 | if(YH){
22 | click(YH.x,YH.y);
23 | click(590,940);
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/hello语音刷房脚本(雷电).js:
--------------------------------------------------------------------------------
1 | "auto"
2 | while (true) {
3 | className("android.widget.RelativeLayout").id("sl_item_my_room_avatar").findOne().parent().parent().click()
4 | waitForActivity("com.yy.huanju.chatroom.ChatroomActivity", period = 200)
5 | className("android.widget.LinearLayout").id("topbar_right_child_layout").findOne().click()
6 | className("android.widget.TextView").id("txt_menu_item_content").text("退出房间").findOne().parent().click()
7 | text("退出").waitFor();
8 | click("退出")
9 |
10 |
11 |
12 |
13 |
14 | waitForActivity("com.yy.huanju.MainActivity", period = 200)
15 |
16 | }
--------------------------------------------------------------------------------
/发送通知(3).js:
--------------------------------------------------------------------------------
1 | //By 酷安@群主让我注册
2 | //By张达
3 | //代码与版权注释是一对好基友,请您不要狠心拆散他们
4 | const date = new Date();
5 | const info = "最新版本是" + (date.getMonth() + 1) + "月" + date.getDate() + "日"
6 | const notify = new android.app.Notification.Builder(runtime.getApplicationContext())
7 | .setContentInfo(info)
8 | .setContentTitle("有新的版本了")
9 | .setContentText("请及时更新脚本")
10 | .setTicker("脚本有新的版本了")
11 | .setSmallIcon(com.stardust.scriptdroid.R.drawable.autojs_material)
12 | .build();
13 | const manager = context.getSystemService(android.app.Service.NOTIFICATION_SERVICE);
14 | manager.notify(random(0,0xffff), notify);
--------------------------------------------------------------------------------
/只同时运行一个脚本.js:
--------------------------------------------------------------------------------
1 | /*
2 | 打开这个脚本的同时,会同时结束其他脚本
3 | 多次运行同一个脚本,会结束前面的脚本,运行最后一个脚本
4 | 使用方法,把下面
5 | //=================
6 | 之前的代码放在脚本的开头就可以了
7 | */
8 | 只运行一个脚本()
9 | function 只运行一个脚本() {
10 | var source = engines.myEngine().getTag("source");
11 | var minling = files.read(source)
12 | minling = minling.replace("只运行一个脚本", "开始")
13 | log(minling)
14 | engines.execScript("hello ", minling)
15 | engines.stopAll()
16 | }
17 | function 开始() {
18 | toast("开始")
19 | }
20 | //=================
21 |
22 |
23 | sleep(1000)
24 | i = 0
25 | while (true) {
26 | toastLog("哈哈" + i)
27 | i++
28 | sleep(2000)
29 | }
--------------------------------------------------------------------------------
/截图水印(1).js:
--------------------------------------------------------------------------------
1 | toastLog("Are you ready?");
2 | if (!requestScreenCapture()) {
3 | toast("请求截图失败");
4 | exit();
5 | };
6 |
7 |
8 | var IMG=captureScreen();
9 | var bitmap=IMG.getBitmap();
10 | var canvas=new Canvas(bitmap);
11 | var w=canvas.width,h=canvas.height;
12 | var paint = new Paint;
13 | paint.setTextAlign(Paint.Align.CENTER);
14 | paint.setStrokeWidth(5);
15 | paint.setARGB(127,127,127,127);
16 | var size = 150;
17 | paint.setTextSize(size);
18 | canvas.drawText("这是我的截图", w / 2, h / 2 + 0.365 * size, paint);
19 |
20 | var img=canvas.toImage();
21 | images.save(img,"/sdcard/脚本/我的截图.png","png",50);
--------------------------------------------------------------------------------
/单例模式.js:
--------------------------------------------------------------------------------
1 | function Dog(name) {
2 | this.name = name
3 | this.birth = new Date()
4 | }
5 | var single = (function () {
6 | var unique;
7 |
8 | function getInstance() {
9 | if (unique === undefined) {
10 | unique = new Dog('snoopy');
11 | }
12 | return unique;
13 | }
14 | return {
15 | getInstance: getInstance
16 | }
17 | })();
18 | var dog1 = single.getInstance()
19 | console.log('dog1.birth=', dog1.birth)
20 | sleep(2000)
21 | var dog2 = single.getInstance()
22 | console.log('dog2.birth=', dog2.birth)
23 | if (dog1.birth === dog1.birth) {
24 | log(true)
25 | } else {
26 | log(false)
27 | }
28 |
--------------------------------------------------------------------------------
/微信红包通知监听.js:
--------------------------------------------------------------------------------
1 | //获取顶部通知,如果是微信红包,则进行跳转,需要给auto.js可以获取通知的权限
2 | //author 7-81
3 | //date 2017/1/2
4 | //version 1.0
5 |
6 | auto();
7 | events.observeNotification();
8 | events.onNotification(function(notification){
9 | printNotification(notification);
10 | });
11 | toast("监听中,请在日志中查看记录的通知及其内容");
12 | console.show();
13 | function printNotification(n){
14 | log("收到新通知:\n 标题: %s, 内容: %s, \n包名: %s", n.getTitle(), n.getText(), n.getPackageName());
15 | if(n.getText()&&n.getPackageName()){
16 | if(n.getText().match("\\[微信红包\\]")&&n.getPackageName().match("com.tencent.mm"))
17 | n.click();
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/提取广播数据.js:
--------------------------------------------------------------------------------
1 |
2 | let intent = engines.myEngine().execArgv.intent;
3 | if (intent == null) {
4 | toastLog("请使用定时任务运行此脚本");
5 | exit();
6 | }
7 | log("action = ", intent.action);
8 | log("package = ", intent.package);
9 | log("data = ", intent.data);
10 | let extras = intent.extras;
11 | log("extras = ", intent.extras);
12 | if (extras) {
13 | let str = "{\n";
14 | let iter = extras.keySet().iterator();
15 | while (iter.hasNext()) {
16 | let key = iter.next();
17 | let value = extras.get(key);
18 | str += " " + key + ": " + value;
19 | str += ", \n";
20 | }
21 | str += "}";
22 | log(str);
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/QQ群签到.js:
--------------------------------------------------------------------------------
1 | auto();
2 | //qq群
3 | var qun = ["823217748","182391644","730428861","598183532","87272821"];
4 | for (let i = 0; i < qun.length; i++) {
5 | var c = base64("https://qun.qq.com/qqweb/m/qun/checkin/index.html?gc="+ qun[i] + "&state=1");
6 | app.startActivity({
7 | action: "android.intent.action.VIEW",
8 | data: "mqqapi://forward/url?url_prefix=" + c + "&version=1&src_type=web"
9 | });
10 | text("发表").waitFor();
11 | while(!click("发表"));
12 | sleep(500);
13 | }
14 | function base64(str){
15 | return java.lang.String(android.util.Base64.encode(java.lang.String(str).getBytes(),2));
16 | }
17 |
--------------------------------------------------------------------------------
/百度翻译[中转英].js:
--------------------------------------------------------------------------------
1 | function Baidu_zh_To_en(str) {
2 | function getMd5(string) {return java.math.BigInteger(1, java.security.MessageDigest.getInstance("MD5").digest(java.lang.String(string).getBytes())).toString(16)}
3 | var salt = (new Date).getTime();
4 | var sign = getMd5("20180125000118573" + str + salt + "O_PrebY0tsdbHjKNOaDf");
5 | var res = http.post("http://api.fanyi.baidu.com/api/trans/vip/translate?", {q: str,appid: "20180125000118573",salt: salt,from: "zn",to: "en",sign: sign});
6 | str = JSON.parse(res.body.string()).trans_result.map(val => val.dst).join('\n');
7 | return str;
8 | }
9 | toastLog(Baidu_zh_To_en("今天天气好晴朗"));
--------------------------------------------------------------------------------
/计时.js:
--------------------------------------------------------------------------------
1 | //一小时以内的计时
2 |
3 | //输入间隔时间。
4 | var jg = rawInput("uu");
5 | //开始计时
6 | var d = new Date();
7 | var f1 = d.getMinutes();
8 | var m1 = d.getSeconds();
9 | //间隔事件。
10 | sleep(jg * 1000);
11 | //计时结束
12 | var e = new Date();
13 | var f2 = e.getMinutes();
14 | var m2 = e.getSeconds()
15 | //分秒差
16 | var lf = f2 - f1;
17 | var ls = m2 - m1;
18 | //分判
19 | if (lf < 0) {
20 | var fj = 60 + lf;
21 | } else if (lf > 0) {
22 | var fj = lf;
23 | }
24 | //秒判
25 | if (ls < 0) {
26 | var mj = 60 + ls;
27 | } else if (ls > 0) {
28 | var mj = ls;
29 | }
30 | //显示结果
31 | alert(fj + "分" + mj + "秒");
32 | //toast(fj + "分" + mj + "秒");
--------------------------------------------------------------------------------
/autojs开启无障碍.js:
--------------------------------------------------------------------------------
1 | "auto"
2 | for (var i=2; i>0; i--) {
3 | var r=shell("settings get secure enabled_accessibility_services",true)
4 | if (r.toString().includes("autojs")==false) {
5 | setClip(r.toString())
6 | var s=r.toString().match(/result='(.*)/)[1]
7 | shell("settings put secure enabled_accessibility_services "+s+":org.autojs.autojs/org.autojs.autojs.accessibility.AccessibilityService",true);
8 | shell("settings put secure accessibility_enabled 1",true)
9 | if (i==2)
10 | toast("再次确认!");
11 | else
12 | toast("这就尴尬了!你自己想办法搞吧!");
13 | }else{
14 | toast("auto.js无障碍服务已开启!");
15 | break;
16 | }
17 | }
--------------------------------------------------------------------------------
/员工福利分享.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | showLoginUI();
4 | ui.statusBarColor("#000000")
5 |
6 | function showLoginUI(){
7 | ui.layout(
8 |
9 |
10 |
11 | 这是员工福利软件,需要员工账号
12 |
13 |
14 |
15 |
16 |
17 |
18 |
20 |
21 |
22 | );
23 |
24 | ui.er.click(()=>{
25 | toast("登录成功")
26 | });
27 | };
--------------------------------------------------------------------------------
/屏幕唤醒.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 |
3 | var wake=function (){
4 | device.wakeUp();
5 | sleep(400);
6 | //小米跳转到解锁页面
7 | gesture(500, [0, device.height/2], [device.width/2, device.height/4], [device.width/2, device.height/8]);
8 | // swipe(device.width / 2, device.height /2, device.width / 2, device.height /4, 500);
9 |
10 | sleep(1000);
11 | var pwd="0403";
12 | clickPwd(pwd);
13 | sleep(1000);
14 | }
15 |
16 | function clickPwd(pwd){
17 | for(var i=0;i 1) {
15 | d[p]=tmp[0]+".js";
16 | p++;
17 | }
18 | }return d;
19 | }
20 |
21 |
22 |
--------------------------------------------------------------------------------
/QQ打开聊天窗口.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.statusBarColor("#03a9f4");
4 |
5 | ui.layout(
6 |
7 | QQ打开聊天窗口
8 |
9 |
10 |
11 |
12 |
13 | )
14 |
15 | ui.ok.click(function(){
16 | app.startActivity({
17 | action: "android.intent.action.VIEW",
18 | data: "mqqwpa://im/chat?chat_type=wpa&uin=" + ui.qq.text()
19 | });
20 | ui.finish();
21 | });
--------------------------------------------------------------------------------
/手机QQ好友动态自动.js:
--------------------------------------------------------------------------------
1 | var dc = text("动态").desc("返回动态 按钮").id("ivTitleBtnLeft");
2 | //开始
3 | app.launchPackage("com.tencent.mobileqq");
4 | toast("请打开空间")
5 | waitForActivity("cooperation.qzone.QzoneFeedsPluginProxyActivity", [period = 200]);
6 | if (dc.exists() == true) {
7 | toast("当前页面为空间页面,即将开始点赞")
8 | }
9 |
10 | threads.start(function() {
11 | //在新线程执行的代码
12 | while (true) {
13 | if (className("android.widget.ImageView").id("name").depth("4").drawingOrder("1").exists()) {
14 | className("android.widget.ImageView").id("name").depth("4").drawingOrder("1").click();
15 | }
16 | sleep(1000);
17 | swipe(500,1500,500,500,1500);
18 | sleep(1000);
19 | }
20 | });
--------------------------------------------------------------------------------
/花屏(2).js:
--------------------------------------------------------------------------------
1 | requestScreenCapture();
2 | var window = floaty.rawWindow(
3 |
4 |
5 |
6 | );
7 | window.setTouchable(false);
8 | threads.start(function(){
9 | try{
10 | sleep(1000);
11 | var beishu=10;
12 | while (true) {
13 | ui.run(() => {
14 | window.img.setSource(
15 | images.clip(
16 | captureScreen(),
17 | beishu, beishu, device.width- beishu * 2, device.height- beishu * 2
18 | )
19 | );
20 | });
21 | };
22 | }catch(e){toast("运行失败,请重新尝试");}
23 | });
--------------------------------------------------------------------------------
/js块级作用域.js:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | 标题:let关键字详解!
4 | 作者:留一手
5 | QQ:488716757
6 |
7 | */
8 |
9 | function getValue(condition){
10 |
11 | if(condition){
12 | var value = "blue";
13 | return value;
14 | }else{
15 | log(value);
16 | return null;
17 | }
18 |
19 | }
20 |
21 | const conter = "解析:如果你不熟悉JavaScript,可能会认为只有当condition为true的时候才会创建value变量,事实上,无论condition的值是true还是false,变量value都会被创建,值为undefined,即未定义!接下来你把12行的var改为let再运行代码试试,结果会报错,因为第15行没有这个变量,把这行注释掉就能正常运行。let声明的变量只能作用在{}中,在花括号外调用此变量都会报错!而var声明的变量可以在花括号外调用,值为undefined!"
22 |
23 | console.show();
24 | print(getValue(false));
25 | console.error(conter);
26 |
27 |
28 |
--------------------------------------------------------------------------------
/获取app图标1.js:
--------------------------------------------------------------------------------
1 | importClass(java.io.File);
2 | importClass(java.io.FileOutputStream);
3 | importClass(android.graphics.Bitmap);
4 | pm = context.getPackageManager();
5 | importClass(android.util.DisplayMetrics)
6 | var name = rawInput("请输入你想要获取的应用图标的应用名", "QQ");
7 | packageName = app.getPackageName(name);
8 | appInfo = pm.getApplicationInfo(packageName, 0);
9 | bmp = appInfo.loadIcon(pm).getBitmap();
10 | files.create("/sdcard/"+name+".jpg");
11 | f = new File("/sdcard/"+name+"qq.jpg");
12 | fOut = new FileOutputStream(f);
13 | bmp.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
14 | fOut.flush();
15 | fOut.close();
16 | app.viewFile("sdcard/"+name+".jpg")
--------------------------------------------------------------------------------
/钉钉自动打卡-解锁2.js:
--------------------------------------------------------------------------------
1 | "auto"
2 | sleep(2000)
3 | if (!device.isScreenOn()) {
4 | device.wakeUp()
5 | swipe(500, 1500, 500, 500, 1000);
6 | sleep(2000)
7 | click("9", 0)
8 | click("8", 0)
9 | click("7", 0)
10 | click("6", 0)
11 | }
12 | sleep(1000)
13 | app.launchPackage("com.alibaba.android.rimet")
14 | sleep(2000)
15 | //waitForActivity("com.alibaba.android.rimet.biz.SplashActivity", [period = 200])
16 | desc("工作").findOne().click()
17 | var list = text("考勤打卡").find()
18 | if (!list.empty()) {
19 | list[list.length - 1].parent().parent().click()
20 | }
21 | sleep(2000)
22 | back()
23 | sleep(500)
24 | back()
25 | //click("下班打卡",0)
--------------------------------------------------------------------------------
/取关全部公众号.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | if (confirm("将会取关所有公众号,是否继续")) {
4 | unfollowAll();
5 | }
6 |
7 | function unfollowAll() {
8 | launchApp("微信");
9 | sleep(1000);
10 | while (!click("通讯录"));
11 | while (!click("公众号"));
12 | sleep(500);
13 | while (true) {
14 | className("ListView").findOne().children().each(function(item) {
15 | if (item.longClickable()) {
16 | unfollow(item);
17 | sleep(400);
18 | }
19 | });
20 | }
21 | }
22 |
23 | function unfollow(item) {
24 | item.longClick();
25 | while (!click("取消关注"));
26 | while (!click("不再关注"));
27 | }
28 |
--------------------------------------------------------------------------------
/诊断数据收集.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | var sh;
3 | var f;
4 | threads.start(function() {
5 | sh = new Shell();
6 | f = open(files.path("./out.txt"), "w");
7 | sh.setCallback({
8 | onOutput: function(str) {
9 | f.write(str);
10 | }
11 | })
12 | sh.exec("su");
13 | sh.exec("getevent -t -l");
14 | toast("请不断双指捏合");
15 | });
16 |
17 | setTimeout(() => {
18 | sh.exit();
19 | f.close();
20 | dialogs.alert("请停止触摸")
21 | .then(() => {
22 | setTimeout(() => {
23 | app.viewFile(files.path("./out.txt"));
24 | finish();
25 | }, 2000);
26 | });;
27 | }, 5000)
--------------------------------------------------------------------------------
/QQ自动评论(联网版).js:
--------------------------------------------------------------------------------
1 | "auto";
2 | function xh() {
3 | className("AbsListView").scrollForward();
4 | }
5 |
6 | function pl() {
7 | className("android.widget.ImageView").drawingOrder("5").click();
8 | }
9 | function sr() {
10 | a=http.get("http://word.rainss.cn/api_system.php?type=txt").body.string();
11 | if ((currentPackage() == 'com.tencent.mobileqq')) {
12 | setText(a);
13 | !click("发送");
14 | }
15 | else if(!(currentPackage() == 'com.tencent.mobileqq'))
16 | {
17 | //toast("请打开QQ\n" + a);
18 | }}
19 |
20 | while (true) {
21 | xh();
22 | sleep(100)
23 | pl();
24 | sleep(200);
25 | sr();
26 | sleep(100);
27 | }
--------------------------------------------------------------------------------
/快来签到吧.js:
--------------------------------------------------------------------------------
1 | auto();
2 | //群号数组.每天有5次加分机会. 你可以设置5个群号.
3 | var qun = [
4 | "332093831",
5 | "182391644"
6 | ];
7 | for (let i = 0; i < qun.length; i++) {
8 | var c = base64("https://qun.qq.com/qqweb/m/qun/checkin/index.html?gc="+ qun[i] + "&state=1");
9 | app.startActivity({
10 | action: "android.intent.action.VIEW",
11 | data: "mqqapi://forward/url?url_prefix=" + c + "&version=1&src_type=web"
12 | });
13 | text("发表").waitFor();
14 | while(!click("发表"));
15 | //如果提示签到频繁,就把延时改大点
16 | sleep(2000);
17 | }
18 | function base64(str){
19 | return java.lang.String(android.util.Base64.encode(java.lang.String(str).getBytes(),2));
20 | }
21 |
--------------------------------------------------------------------------------
/读写@data目录文件.js:
--------------------------------------------------------------------------------
1 | var path = '/data/user/0/com.tencent.mobileqq/guid'
2 | r = readFile(path)
3 | log(r)
4 | writeFile(path, 'dsfsfdsafasfds')
5 | r = readFile(path)
6 | log(r)
7 |
8 | function readFile(path) {
9 | var sh = new Shell(true);
10 | var tempFile = '/sdcard/temp.txt'
11 | sh.exec('cat ' + path + '> ' + tempFile)
12 | sh.exitAndWaitFor()
13 | return files.read(tempFile)
14 | }
15 |
16 | function writeFile(path, content) {
17 | var tempFile = '/sdcard/temp.txt'
18 | files.createWithDirs(tempFile)
19 | files.write(tempFile, content)
20 | var sh = new Shell(true);
21 | sh.exec('cat ' + tempFile + ' > ' + path)
22 | sh.exitAndWaitFor()
23 | }
24 |
--------------------------------------------------------------------------------
/HAHA小视频无限撸money(无解说).js:
--------------------------------------------------------------------------------
1 | while (true) {
2 | launchApp("HAHA小视频")
3 | sleep(10000)
4 | click(347, 1345)
5 | sleep(10000)
6 | swipe(500, 10, 500, 1000, 2000)
7 | click(571.5, 266.8)
8 | swipe(500, 1000, 500, 10, 2000)
9 | sleep(3000)
10 | click(342.7, 372.7)
11 | swipe(500, 10, 500, 1000, 2000)
12 | click(571.5, 266.8)
13 | swipe(500, 1000, 500, 10, 2000)
14 | sleep(3000)
15 | click(951, 1043.5)
16 | sleep(2000)
17 | back()
18 | sleep(900000)
19 | recents()
20 | sleep(2000)
21 | swipe(146.8, 1867, 1053, 1867, 1000)
22 | sleep(3000)
23 | recents()
24 | sleep(60000)
25 | }
26 | //注意,使用此脚本只能开两个应用
--------------------------------------------------------------------------------
/QQ红包.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | launch("com.tencent.mobileqq");
3 | toast("打开聊天窗口,出现红包时将会自动拆开并关闭(可配合红包提醒APP)");
4 | while (!isStopped()) {
5 | waitForActivity("com.tencent.mobileqq.activity.SplashActivity");
6 | //普通红包
7 | if (text("QQ红包").exists()) {
8 | var id = text("QQ红包").findOne();
9 | id.parent().click();
10 | close();
11 | }
12 | //口令红包
13 | if (click("口令红包")) {
14 | click("点击输入口令");
15 | click("发送");
16 | close();
17 | }
18 | }
19 |
20 |
21 | function close() {
22 | //拆开红包后尝试10次关闭红包页面
23 | for (let i = 0; i < 10; i++) {
24 | sleep(300);
25 | if (click("关闭")) break;
26 | }
27 | }
--------------------------------------------------------------------------------
/伪监听屏幕旋转.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 伪监听屏幕旋转
3 | * 备注 : 使用定时器监听屏幕的方向改变 囧rz
4 | */
5 |
6 | let isHorizontalScreen = function() {
7 | let config = context.getResources().getConfiguration();
8 | let ori = config.orientation;
9 | if (ori == config.ORIENTATION_LANDSCAPE) {
10 | //横屏
11 | return true;
12 | } else if (ori == config.ORIENTATION_PORTRAIT) {
13 | //竖屏
14 | return false;
15 | }
16 | }
17 |
18 | let isHorizontal = isHorizontalScreen();
19 |
20 | setInterval(() => {
21 | if (isHorizontal != isHorizontalScreen()) {
22 | isHorizontal = isHorizontalScreen();
23 | toastLog(isHorizontal ? "横屏" : "竖屏");
24 | }
25 | }, 1000)
--------------------------------------------------------------------------------
/强制聊天脚本.js:
--------------------------------------------------------------------------------
1 | var qq=2825089371;
2 | f2(qq);
3 |
4 | function f1(qq){
5 | app.startActivity({
6 | action: "android.intent.action.VIEW",
7 | data:"mqq://im/chat?chat_type=wpa&version=1&src_type=web&uin="+qq,
8 | packageName: "com.tencent.mobileqq",
9 | });
10 | }
11 | function f2(qq){
12 | shell("am start -n com.tencent.tim/com.tencent.mobileqq.activity.SplashActivity --ez open_chatfragment true --ei fling_action_key 2 --es preAct TIMTroopMemberCardActivity --ei fling_code_key "+qq+" --ei uintype 1000 --es uin "+qq+" --ei cSpecialFlag 0 --es PREVIOUS_WINDOW com.tencent.mobileqq.activity.TroopMemberCardActivity --es PREVIOUS_UIN "+qq,true);
13 | }
14 |
--------------------------------------------------------------------------------
/最大公约数.js:
--------------------------------------------------------------------------------
1 | console.show();
2 |
3 |
4 |
5 |
6 | log(最大公约数(12,10));
7 | log(最大公约数(12,10,8));
8 | log(最大公约数(12,15));
9 | log(最大公约数(14,15,7));
10 |
11 |
12 |
13 |
14 |
15 | function 最大公约数() {
16 | if (arguments.length >= 2) {
17 | let num = arguments[0];
18 | for (let i = 1; i < arguments.length; i++) {
19 |
20 | let m = gcd(num, arguments[i]);
21 | if (Math.abs(m) == 1) {
22 | return m;
23 | } else {
24 | num = m;
25 | };
26 | };
27 | return num;
28 | };
29 |
30 | function gcd(a, b) {
31 | return b ? gcd(b, a % b) : a;
32 | };
33 | };
34 |
35 |
--------------------------------------------------------------------------------
/微信搜索框输入消息.js:
--------------------------------------------------------------------------------
1 | var 搜索框 = bounds(120, 101, 1056, 187).findOnce()
2 | if (搜索框) {
3 | clickView(搜索框)
4 | sleep(1000)
5 | 输入消息(搜索框, '喵喵喵')
6 | } else {
7 | alert('没找到')
8 | }
9 |
10 | function 输入消息(view, msg) {
11 | sleep(1000)
12 | KeyCode('KEYCODE_SPACE')
13 | sleep(3000)
14 | input(msg)
15 | sleep(1000)
16 | }
17 |
18 | function clickView(view) {
19 | log(arguments.callee.name + '开始')
20 | log(view)
21 | if (view) {
22 | var x = view.bounds().centerX()
23 | var y = view.bounds().centerY()
24 | log('将要点击的坐标 %s,%s', x, y)
25 | press(x, y, 1)
26 | } else {
27 | throw '传入clickView中的view异常'
28 | }
29 | log(arguments.callee.name + '结束')
30 | }
31 |
--------------------------------------------------------------------------------
/te.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 | );
6 |
7 | setInterval(() => {}, 1000);
8 |
9 |
10 | window.action.on("click", () =>
11 | onClick()
12 | );
13 |
14 | function onClick() {
15 | toast("开始")
16 |
17 | while (1) {
18 | for (i = 0; i < 8; i++) {
19 | click("账户安全")
20 | click("提交验证码")
21 | sleep(1000);
22 | setText(ma)
23 | }
24 | toast("已8次")
25 | sleep(1000)
26 | swipe(500, 500, 500, 1500, 1000);
27 | sleep(1000);
28 | }
29 | }
30 |
31 |
32 | var ma = getClip()
33 | log(ma)
--------------------------------------------------------------------------------
/打开指针.js:
--------------------------------------------------------------------------------
1 | eval("\x6c\x61\x75\x6e\x63\x68\x41\x70\x70\x28\x22\u8bbe\u7f6e\x22\x29\x3b\x0a\x73\x6c\x65\x65\x70\x28\x35\x30\x30\x29\x3b\x0a\x66\x6f\x72\x28\x61\x3d\x30\x3b\x61\x3c\x34\x3b\x61\x2b\x2b\x29\x7b\x0a\x73\x63\x72\x6f\x6c\x6c\x44\x6f\x77\x6e\x28\x29\x3b\x0a\x73\x6c\x65\x65\x70\x28\x32\x30\x30\x29\x0a\x63\x6c\x69\x63\x6b\x28\x22\u8f85\u52a9\u529f\u80fd\x22\x29\x3b\x0a\x73\x6c\x65\x65\x70\x28\x32\x30\x30\x29\x3b\x0a\x63\x6c\x69\x63\x6b\x28\x22\u5f00\u53d1\u8005\u9009\u9879\x22\x29\x3b\x0a\x73\x6c\x65\x65\x70\x28\x35\x30\x30\x29\x3b\x0a\x63\x6c\x69\x63\x6b\x28\x22\u6307\u9488\u4f4d\u7f6e\x22\x29\x3b\x0a\x73\x63\x72\x6f\x6c\x6c\x44\x6f\x77\x6e\x28\x29\x3b\x0a\x7d\x0a\x68\x6f\x6d\x65\x28\x29\x3b\x0a\x0a");
--------------------------------------------------------------------------------
/获取设备信息.js:
--------------------------------------------------------------------------------
1 |
2 | console.show();
3 |
4 | var str = "";
5 | str += "屏幕宽度:" + device.width;
6 | str += "\n屏幕高度:" + device.height;
7 | str += "\nbuildId:" + device.buildId;
8 | str += "\n主板:" + device.board;
9 | str += "\n制造商:" + device.brand;
10 | str += "\n型号:" + device.model;
11 | str += "\n产品名称:" + device.product;
12 | str += "\nbootloader版本:" + device.bootloader;
13 | str += "\n硬件名称:" + device.hardware;
14 | str += "\n唯一标识码:" + device.fingerprint;
15 | str += "\nIMEI: " + device.getIMEI();
16 | str += "\nAndroidId: " + device.getAndroidId();
17 | str += "\nMac: " + device.getMacAddress();
18 | str += "\nAPI: " + device.sdkInt;
19 | str += "\n电量: " + device.getBattery();
20 |
21 | log(str);
22 |
--------------------------------------------------------------------------------
/读取保存界面配置接口.js:
--------------------------------------------------------------------------------
1 | // 开发文档https://easydoc.xyz/#/doc/25791054/uw2FUUiw/dUKkGTUD
2 |
3 |
4 | //此代码由飞云脚本圈原创(www.feiyunjs.com)
5 | //保存本地数据
6 | function setStorageData(name, key, value) {
7 | const storage = storages.create(name);
8 | storage.put(key, value);
9 | };
10 |
11 | //读取本地数据
12 | function getStorageData(name, key) {
13 | const storage = storages.create(name);
14 | if (storage.contains(key)) {
15 | return storage.get(key, "");
16 | };
17 | //默认返回undefined
18 | };
19 |
20 | //删除本地数据
21 | function delStorageData(name, key) {
22 | const storage = storages.create(name);
23 | if (storage.contains(key)) {
24 | storage.remove(key);
25 | };
26 | };
--------------------------------------------------------------------------------
/静音或恢复音量.js:
--------------------------------------------------------------------------------
1 | // 0 静音 1非静音
2 | var 静音模式文件 = files.join(files.getSdcardPath(), '脚本/volumeMode.js')
3 | var 存储声音大小的文件 = files.join(files.getSdcardPath(), '脚本/volume.js')
4 |
5 | var volumeMode = files.read(静音模式文件)
6 |
7 |
8 | if (volumeMode.indexOf('0') > -1) {
9 | toast('开启静音模式')
10 | // 备份原来的声音大小
11 | var 原来的声音大小 = device.getMusicVolume()
12 | files.write(存储声音大小的文件, 原来的声音大小);
13 | var volume = 0
14 | device.setMusicVolume(volume)
15 | } else {
16 | toast('恢复原来声音的大小')
17 | if (files.exists(存储声音大小的文件)) {
18 | var volume = files.read(存储声音大小的文件)
19 | volume = parseInt(volume)
20 | device.setMusicVolume(volume)
21 | } else {
22 | device.setMusicVolume(10)
23 | }
24 | }
--------------------------------------------------------------------------------
/写脚本--控件信息自动重命名.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: 白酒煮饭
3 | * @Date: 2019-08-16 21:31:58
4 | * @Last Modified by: QQ:1641763174
5 | * @Last Modified time: 2019-08-16 21:37:54
6 | *
7 | * 功能
8 | * 自动将此类型的文字 className = android.widget.TextView
9 | * 转换成这样 className("android.widget.TextView")
10 | *
11 | * 使用方法
12 | * PC 手机使用TC连接,开启自动同步剪贴板
13 | * 手机 运行该脚本即可
14 | */
15 | while (true) {
16 | var s1;
17 | var xx = getClip();
18 | if (s1 != xx) {
19 | if (xx.match(/\=/g)) {
20 | let b = xx.replace(/\s/g, "").split("=");
21 | let c = b[0] + '("' + b[1] + '")';
22 | setClip(c);
23 | s1 = c;
24 | }
25 | }
26 | sleep(500);
27 | }
--------------------------------------------------------------------------------
/activity.js:
--------------------------------------------------------------------------------
1 | am = context.getSystemService(context.ACTIVITY_SERVICE);
2 | cn = am.getRunningTasks(1).get(0).topActivity;
3 | // log("current", "pkg:" + cn.getPackageName());
4 | // log("currentclass", "cls:" + cn.getClassName());
5 | var mPackageManager = context.getPackageManager()
6 | // var appList=pm.getInstalledApplications(0)
7 | latestPackageStr=cn.getPackageName()
8 | latestClassStr=cn.getClassName()
9 | componentName = new android.content.ComponentName('org.autojs.autojs', 'org.autojs.autojs.ui.main.MainActivity_')
10 | // mLatestActivity = mPackageManager.getActivityInfo(componentName, 0);
11 | mLatestActivity = mPackageManager.getActivityInfo(componentName, 1);
12 | log(mLatestActivity)
13 |
--------------------------------------------------------------------------------
/子线程与主线程逻辑.js:
--------------------------------------------------------------------------------
1 | console.show();
2 | log("3秒后开始测试");
3 | sleep(3000);
4 | threads.start(function() {
5 | for (;;) {
6 | sleep(1000);
7 | log("子线程1"); //启动一个子线程
8 | };
9 | });
10 | threads.start(function() {
11 | for (;;) {
12 | sleep(1000);
13 | log("子线程2"); //启动一个子线程
14 | };
15 | });
16 | threads.start(function() {
17 | for (;;) {
18 | sleep(1000);
19 | log("子线程3"); //启动一个子线程
20 | };
21 | });
22 | for (i = 0; i < 10; i++) {
23 | sleep(1000);
24 | log("主线程"+i+"次");
25 | };
26 | log("主线程执行完了")
27 | threads.start(function() {
28 | for (;;) {
29 | sleep(1000);
30 | log("子线程4"); //启动一个子线程
31 | };
32 | });
--------------------------------------------------------------------------------
/1求交集.js:
--------------------------------------------------------------------------------
1 | Array.intersect = function () {
2 | var result = new Array();
3 | var obj = {};
4 | for (var i = 0; i < arguments.length; i++) {
5 | for (var j = 0; j < arguments[i].length; j++) {
6 | var str = arguments[i][j];
7 | if (!obj[str]) {
8 | obj[str] = 1;
9 | } else {
10 | obj[str]++;
11 | if (obj[str] == arguments.length) {
12 | result.push(str);
13 | }
14 | } //end else
15 | } //end for j
16 | } //end for i
17 | return result;
18 | }
19 | 当前页面所有文字列表 = [
20 | '13491',
21 | '邀请码',
22 | '13491'
23 | ]
24 | 当前页文字列表 = [
25 | '点此登录',
26 | '我的金币'
27 | ]
28 | var 交集 = Array.intersect(当前页文字列表, 当前页面所有文字列表)
29 | log(交集)
30 |
--------------------------------------------------------------------------------
/华为解锁(1).js:
--------------------------------------------------------------------------------
1 | /**
2 | *by Hyun Mai
3 | *QQ:2668649792
4 | *华为解锁
5 | */
6 |
7 | var pass = "1024" //解锁密码
8 | while (true) {
9 | Unlock();
10 | }
11 |
12 | function Unlock() {
13 | if (!device.isScreenOn()) {
14 | device.wakeUp();
15 | } else if (packageName("com.android.systemui").text("输入密码").findOnce()) {
16 | sleep(500);
17 | for (var i = 0; i < pass.length; i++) {
18 | var aa = text(pass[i].toString()).findOne().bounds();
19 | click(aa.centerX(), aa.centerY());
20 | }
21 | } else if (packageName("com.android.systemui").findOnce()) {
22 | sleep(500)
23 | swipe(360, 600, 360, 0, 100);
24 | }
25 | //逻辑有问题,死在了循环上
26 | }
--------------------------------------------------------------------------------
/广告群自动抢楼.js:
--------------------------------------------------------------------------------
1 | "auto"
2 | //再指定群界面挂机(检测关键词自动发送广告)
3 | //日入百群,只需2-5元
4 | //利用红包插件一天回本
5 | var a="自行输入广告词"
6 |
7 |
8 | while(true)
9 | {
10 | sleep(1000)
11 | if(currentActivity()=="com.tencent.mobileqq.activity.SplashActivity")
12 | {
13 | if(text("楼下").exists())
14 | {
15 | //抢占机会
16 | setText("1⃣"+"\n"+"🇨🇳占领🇨🇳"+"🇨🇳占领🇨🇳")
17 | click("发送")
18 | //发送广告内容
19 | setText(a)
20 | className("android.widget.ImageView").drawingOrder(2).longClickable(false).findOne().click()
21 | className("android.widget.CheckBox").findOne().click()
22 | className("android.widget.ImageView").drawingOrder(2).longClickable(false).findOne().click()
23 | click("发送")
24 | setText("有请下面大佬发言")
25 | click("发送")
26 | }
27 |
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/悬浮窗文本追加内容并滚动至末尾.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 悬浮窗文本追加内容并滚动至末尾
3 | * 用到append、scrollTo、getHeight
4 | */
5 |
6 | var window = floaty.window(
7 |
8 |
9 |
10 | 内容
11 |
12 |
13 |
14 | );
15 | window.exitOnClose();
16 | window.setAdjustEnabled(true);
17 |
18 |
19 | setInterval(() => {
20 | ui.run(function () {
21 | window.Alog.append("\n新增一行");
22 | window.As.scrollTo(0, window.Alog.getHeight());
23 | }
24 | );
25 | }, 1000);
26 |
27 |
--------------------------------------------------------------------------------
/显示时间日期.js:
--------------------------------------------------------------------------------
1 | Date.prototype.format = function(fmt){
2 | var year = this.getFullYear();
3 | var month = this.getMonth()+1;
4 | var date = this.getDate();
5 | var hour = this.getHours();
6 | var minute = this.getMinutes();
7 | var second = this.getSeconds();
8 | fmt = fmt.replace("yyyy",year);
9 | fmt = fmt.replace("yy",year%100);
10 | fmt = fmt.replace("MM",fix(month));
11 | fmt = fmt.replace("dd",fix(this.getDate()));
12 | fmt = fmt.replace("hh",fix(this.getHours()));
13 | fmt = fmt.replace("mm",fix(this.getMinutes()));
14 | fmt = fmt.replace("ss",fix(this.getSeconds()));
15 | return fmt;
16 | function fix(n){
17 | return n<10?"0"+n:n;
18 | }
19 | }
20 | var time = new Date().format("yyyy年MM月dd日 hh:mm:ss")
21 | alert(time)
--------------------------------------------------------------------------------
/界面示例-登录.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 | ''+
4 | ' '+
5 | ' '+
6 | ' 用户名'+
7 | ' '+
8 | ' '+
9 | ' '+
10 | ' 密码'+
11 | ' '+
12 | ' '+
13 | ' '+
14 | ' '+
15 | ' '+
16 | ' '+
17 | ' '+
18 | ''
19 | );
20 |
--------------------------------------------------------------------------------
/取关.js:
--------------------------------------------------------------------------------
1 | toast("请打开微信并进入公众号界面")
2 | waitForActivity("com.tencent.mm.plugin.brandservice.ui.BrandServiceIndexUI");
3 | toast("开始进行!")
4 | while (isCurrent()) {
5 | var i = getFirstItem();
6 | if (i == null) break;
7 | i.longClick();
8 | sleep(500);
9 | click("取消关注");
10 | sleep(500);
11 | click("不再关注");
12 | sleep(100);
13 | click("不再关注");
14 | }
15 | if (isCurrent()) toast("公众号已全部扫净!");
16 | else toast("操作已停止");
17 |
18 | function isCurrent() {
19 |
20 | return currentActivity() == "com.tencent.mm.plugin.brandservice.ui.BrandServiceIndexUI";
21 |
22 | }
23 |
24 | function getFirstItem() {
25 | var views = className("ListView").findOne().children();
26 | if (views.size() > 1) return views.get(0);
27 | else return null;
28 | }
--------------------------------------------------------------------------------
/脚本文件夹(2).js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | );
11 | var dir = "/sdcard/脚本";
12 | var items = files.listDir(dir, function(name) {
13 | return name.endsWith(".js") && files.isFile(files.join(dir, name));
14 | });
15 | items=items.map(function(name) {
16 | return {
17 | name: name
18 | }
19 |
20 | });
21 |
22 | ui.list.setDataSource(items);
23 |
24 | ui.list.on("item_click", function(item, i, itemView, listView) {
25 | // toast("被点击的名字为: " + item.name + ",年龄为: " + item.age);
26 | });
--------------------------------------------------------------------------------
/音量上下键同时按控制.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | events.observeKey();
4 | var Timeout, Timeout1;
5 |
6 | events.onKeyDown("volume_up", function(event) {
7 | if (!Timeout) {
8 | Timeout = setTimeout(() => {
9 | if (Timeout && Timeout1) {
10 | kaishi();
11 | };
12 | Timeout = null;
13 | }, 500);
14 | };
15 | });
16 |
17 | events.onKeyDown("volume_down", function(event) {
18 | if (!Timeout1) {
19 | Timeout1 = setTimeout(() => {
20 | if (Timeout && Timeout1) {
21 | kaishi()
22 | };
23 | Timeout1 = null;
24 | }, 500);
25 | };
26 | });
27 |
28 | function kaishi() {
29 | toast("exit")
30 | };
--------------------------------------------------------------------------------
/广播(电量)(2).js:
--------------------------------------------------------------------------------
1 | intent = new Intent();
2 | importClass(android.content.BroadcastReceiver);
3 | importClass(android.content.ContextWrapper);
4 | importClass(android.content.IntentFilter);
5 | filter = new IntentFilter();
6 | filter.addAction(Intent.ACTION_BATTERY_CHANGED);
7 | new ContextWrapper(context).registerReceiver(new BroadcastReceiver({
8 | onReceive: function(context, intent) {
9 | if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
10 | //当前电量
11 | level = intent.getIntExtra("level", 0);
12 | toastLog(level);
13 | }
14 | }
15 | }), filter);
--------------------------------------------------------------------------------
/百度知道.js:
--------------------------------------------------------------------------------
1 | "auto";
2 | toast("开始了");
3 | var w=device.width;var h=device.height;
4 | device.keepScreenOn();
5 | function cha(){if(currentActivity()!="com.baidu.iknow.video.activity.HomeVideoDetailActivity"){toast("结束");exit();}}
6 |
7 | while(true){
8 | var time=10000+10000*random();
9 | sleep(time);
10 | cha();
11 | if(random()>0.5){
12 | if(id("frame_like").find().size()!=0){
13 | var b=id("frame_like").findOnce().bounds();
14 | click(b.left/2+b.right/2,b.top/2+b.bottom/2);
15 |
16 | }
17 | }
18 | time=12000+6000*random();
19 | sleep(time);
20 | cha();
21 | var p=0.3+random()*0.4;
22 | swipe(w*p,h*0.9,w*p,h*0.3,500+random()*300);
23 | }
--------------------------------------------------------------------------------
/足艺阁爬图脚本试用版.js:
--------------------------------------------------------------------------------
1 | k1=8000;//从第8000个帖子开始爬图
2 | function xz(url){
3 | var res = http.get(url);
4 | files.writeBytes("/sdcard/脚本/"+k1+"_"+i+"."+tmp[0].split(".")[1], res.body.bytes());
5 | }
6 | function cutstr(a, b, c) {
7 | a = a.split(b);
8 | for (i = 1; i < a.length; i++) {
9 | tmp = a[i].split(c);
10 | if (tmp.length > 1) {
11 | try{xz("http://www.zyg01.com/"+tmp[0]);}catch(e){}
12 | log(k1+"_"+i);
13 | }
14 | }
15 | }
16 | d="";
17 | openConsole();
18 | while(true){
19 | log(k1);
20 | url="http://www.zyg01.com/forum.php?mod=viewthread&tid="+k1;//+"&extra=page%3D1";
21 | var res = http.get(url);
22 | var html = res.body.string();
23 | cutstr(html,"zoomfile=\"","\"");
24 | k1++;
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/ui选择文件.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | importPackage(org.autojs.autojs.ui.explorer);
3 | importPackage(org.autojs.autojs.model.explorer);
4 | var explorerView = new ExplorerView(new android.view.ContextThemeWrapper(context, org.autojs.autojs.R.style.AppTheme));
5 | explorerView.setExplorer(Explorers.workspace(), ExplorerDirPage.createRoot("/sdcard"));
6 | //explorerView.setDirectorySpanSize(2);
7 | explorerView.setOnItemOperatedListener(function(file) {
8 | toastLog(arguments);
9 | //ui.finish();
10 | });
11 | explorerView.setOnItemClickListener(function(view, item) {
12 | toastLog(item.toScriptFile());
13 | //org.autojs.autojs.model.script.Scripts.run(item.toScriptFile())
14 | });
15 |
16 | ui.setContentView(explorerView);
17 |
18 |
--------------------------------------------------------------------------------
/继续.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 | );
6 | var atc=activity;
7 | var txt = new android.widget.TextView(atc);
8 | txt.setText("ing模拟模块");
9 | // ui.run(function(){
10 | ui.id.addView(txt);
11 | // });
12 | var button = new android.widget.Button(atc);
13 | button.setText("我知道了");
14 | ui.id.addView(button);
15 | button.setOnClickListener(new android.view.View.OnClickListener() {
16 | onClick: function(viewarg) {
17 | toast("你好");
18 | // toastLog(viewarg);
19 | }
20 |
21 |
22 |
23 | });
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/QQ刷一刷改了.js:
--------------------------------------------------------------------------------
1 | auto("fast");
2 |
3 | //launchApp("QQ");
4 | //sleep(2000);
5 | while (true) {
6 | //threads.shutDownAll()
7 | console.show()
8 | threads.start(function() {
9 | packageName("com.stardust.scriptdroid").className("android.widget.EditText").setText("点击确定->");
10 | });
11 | console.rawInput("请点击确定开始!")
12 | console.hide()
13 | console.clear()
14 | sleep(1000)
15 | while (true) {
16 | swipe((random(300,700)), (random(230,400)), random(300,500),random(900,1500), random(5,100))
17 | if (!(currentPackage() == 'com.tencent.mobileqq')) {
18 | console.show()
19 | console.info("退出了QQ!")
20 | break;
21 | // swipe(600, 900, 600, 1400, 1);
22 | }
23 | sleep(60);
24 | }
25 | }
--------------------------------------------------------------------------------
/发送一个空的QQ空间红包.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 |
3 | //直接分享一个空红包到QQ空间
4 | var s = "我发了一个QQ空间红包,快来领取吧~~~";
5 | app.startActivity({
6 | data : "mqqapi://qzone/to_redpocket_share"
7 | })
8 | text("转发理由...").waitFor();
9 | sleep(200);
10 | setText(0, s);
11 | while(!click("发表"));
12 |
13 |
14 |
15 | // //回调形式
16 | // dialogs.rawInput("请输入内容", "", (s)=>{
17 | // if (s) {
18 | // threads.start(function() {
19 | // app.startActivity({
20 | // data : "mqqapi://qzone/to_redpocket_share"
21 | // })
22 | // text("转发理由...").waitFor();
23 | // sleep(200);
24 | // setText(0, s);
25 | // while(!click("发表"));
26 | // })
27 | // }
28 | // })
29 |
30 |
31 |
--------------------------------------------------------------------------------
/求差集.js:
--------------------------------------------------------------------------------
1 | Array.prototype.minus = function (arr) {
2 | return this.filter(function (element) {
3 | for(let i=0;i
4 |
5 |
6 | );
7 | var kg=false,s=0;
8 | setInterval(()=>{
9 | if(kg){
10 | ui.run(()=>{
11 | ui.but.setText(String((new Date().getTime()-s)/1000));
12 | });
13 |
14 |
15 | };
16 |
17 | },100)
18 | ui.but.click(function(){
19 | if(!kg){
20 | kg=true;
21 | s=new Date().getTime();
22 | }else{
23 | kg=false;
24 | ui.run(()=>{
25 | ui.but.setText(String((new Date().getTime()-s)/1000));
26 | });
27 |
28 | };
29 |
30 | });
--------------------------------------------------------------------------------
/中括号数量问题2.js:
--------------------------------------------------------------------------------
1 |
2 | console.show()
3 | 中括号集合=["[[[[]]]]", "[[[][]]]", "[[[]][]]", "[[[]]][]", "[[][[]]]", "[[][][]]","[[]]", "[][]","[[[]]]", "[[][]]", "[[]][]", "[][[]]", "[][][]"]
4 | n=2
5 | log(getBracketList(n,中括号集合))
6 | n=3
7 | log(getBracketList(n,中括号集合))
8 | n=4
9 | log(getBracketList(n,中括号集合))
10 | function getBracketList(n,中括号集合){
11 | var 用来存储符合规定的中括号列表=[]
12 | for(var i=0;i<中括号集合.length;i++){
13 | var 原始中括号=中括号集合[i]
14 | var count=0
15 | var 当前中括号=原始中括号
16 | while(当前中括号.indexOf('[]')>-1){
17 | 当前中括号=当前中括号.replace('[]','')
18 | count++
19 | }
20 | if(当前中括号.length==0 && count==n){
21 | 用来存储符合规定的中括号列表.push(原始中括号)
22 | }else{
23 | continue
24 | }
25 | }
26 | return 用来存储符合规定的中括号列表
27 | }
28 |
--------------------------------------------------------------------------------
/Fermat素性测试.js:
--------------------------------------------------------------------------------
1 | console.show()
2 | print("作者QQ:2185141495。\n长按可复制。")
3 | var i = "66667777", //这里输入。
4 | input = ~~i
5 | if (input != i) {
6 | print("E") //溢出。
7 | } else {
8 | console.info(input + ((素性测试(input)) ? ("是质数。") : ("是合数。")))
9 | }
10 | //以下为主体部分。
11 | //input是输入,turn是要计算的次数,默认为4。
12 | function 素性测试(input, turn) {
13 | for (var i = 0; i < (turn || 4); i++) {
14 | if (幂模(random(1, input - 1), input - 1, input) !== 1) {
15 | return false
16 | }
17 | }
18 | return true
19 |
20 | function 幂模(C, E, N) {
21 | var i = C % N,
22 | D = 1
23 | while (E > 1) {
24 | if ((E & 1) !== 0) {
25 | D = D * i % N
26 | }
27 | i = i * i % N
28 | E >>= 1
29 | }
30 | return i * D % N
31 | }
32 | }
--------------------------------------------------------------------------------
/QQ强制聊天.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | importClass(android.widget.EditText);
4 | importClass(android.widget.Button);
5 | importClass(android.widget.LinearLayout);
6 | importClass(android.content.Intent);
7 | importClass(android.net.Uri);
8 |
9 | var qq = new EditText(activity);
10 | qq.setHint("请输入QQ号");
11 | var btnOk = new Button(activity);
12 | btnOk.setText("确定");
13 | var container = new LinearLayout(activity);
14 | container.addView(qq);
15 | container.addView(btnOk);
16 | activity.setContentView(container);
17 |
18 | btnOk.setOnClickListener(function(view){
19 | activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("mqqwpa://im/chat?chat_type=wpa&uin=" + qq.getText()))
20 | .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
21 | activity.finish();
22 | });
--------------------------------------------------------------------------------
/上滑方式.js:
--------------------------------------------------------------------------------
1 | function 上滑动作(){
2 | var xyArr = [300]
3 | var x0=device.width/2
4 | var y0=device.height/4*3
5 | x0=x0+rndNum(-30, 30)
6 | y0=y0+rndNum(-30, 30)
7 | // log('x0,y0',x0,y0)
8 | var angle = 0
9 | var x = 0
10 | var y = 0
11 | for (let i = 0; i < 30; i++) {
12 | y = x * tan(angle)
13 | y=Math.floor(y)
14 | // log(y)
15 | if((y0-y)<0){
16 | break
17 | }
18 | var xy = [x0+x,y0-y]
19 | xyArr.push(xy)
20 | x += 5;
21 | angle += 3
22 | }
23 | log(xyArr)
24 | gesture.apply(null,xyArr)
25 | function tan(angle) {
26 | return Math.tan(angle * Math.PI / 180);
27 | }
28 | }
29 | function rndNum(min, max) {
30 | return Math.floor(Math.random() * (max - min + 1) + min);
31 | }
32 |
33 | 上滑动作()
34 |
--------------------------------------------------------------------------------
/QQ自动评论(联网版)(1).js:
--------------------------------------------------------------------------------
1 | "auto";
2 | function xh() {
3 | className("AbsListView").scrollForward();
4 | }
5 |
6 | function pl() {
7 | className("android.widget.ImageView").drawingOrder("5").click();
8 | }
9 | function sr() {
10 | a=http.get("http://word.rainss.cn/api_system.php?type=txt").body.string();
11 | if ((currentPackage() == 'com.tencent.mobileqq')) {
12 | setText(a);
13 | !click("发送");
14 | }
15 | else if(!(currentPackage() == 'com.tencent.mobileqq'))
16 | {
17 | //toast("请打开QQ\n" + a);
18 | }}
19 |
20 | while (true) {
21 | xh();
22 | sleep(100)
23 | pl();
24 | sleep(200);
25 | sr();
26 | sleep(100);
27 | }
28 | /*
29 | 目前只能识别在QQ这个软件运行,
30 | 不能识别是不是空间界面
31 | 在QQ里面见到文本输入框就疯了等待大神完善!
32 | */
--------------------------------------------------------------------------------
/XYWH量取器简易版.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 | );
6 |
7 | window.exitOnClose();
8 | window.setAdjustEnabled(true);
9 | window.text.setText("拖动左上与右下图标至需要测量的位置和大小,点击文字复制数据到粘贴板。");
10 | sleep(3000);
11 | window.text.click(()=>{
12 | setClip(window.text.getText());
13 | window.text.setText("已复制到粘贴板");
14 | });
15 |
16 | setInterval(()=>{
17 | //对控件的操作需要在UI线程中执行
18 | ui.run(function(){
19 | window.text.setText(getWindow());
20 | });
21 | }, 1000);
22 |
23 | function getWindow(){
24 | return util.format("坐标x: %d\n坐标y: %d\n宽度: %d\n高度: %d\n",window.getX()+38,window.getY()+108, window.getWidth()-74,window.getHeight()-74);
25 |
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/微信朋友分享.js:
--------------------------------------------------------------------------------
1 | importClass(android.content.ComponentName);
2 | intent = new Intent();
3 | path = files.getSdcardPath() + "/haha.png";
4 | intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
5 | //intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
6 | var uri = android.support.v4.content.FileProvider.getUriForFile(context,
7 | "org.autojs.autojs.fileprovider", new java.io.File(files.path(path)));
8 | log(uri);
9 | comp = new ComponentName("com.tencent.mm",
10 | "com.tencent.mm.ui.tools.ShareImgUI");
11 | intent.setComponent(comp);
12 | intent.setAction("android.intent.action.SEND");
13 | intent.setType("image/*");
14 | intent.putExtra(Intent.EXTRA_TEXT, "我是文字");
15 | intent.putExtra(Intent.EXTRA_STREAM,uri);
16 | // Uri.fromFile(file));
17 | context.startActivity(intent);
--------------------------------------------------------------------------------
/录音最原始版本.js:
--------------------------------------------------------------------------------
1 | //UI界面不稳定,自己测试 上班没时间
2 | importClass(java.io.File);
3 | importClass(android.media.MediaRecorder);
4 |
5 | var f = new File("/sdcard");
6 | myRecAudioFile = File.createTempFile("你bjkkk好", ".amr", f);
7 |
8 |
9 |
10 | mMediaRecorder01 = new MediaRecorder();
11 | /* 设定录音来源为麦克风 */
12 |
13 | mMediaRecorder01.setAudioSource(MediaRecorder.AudioSource.MIC);
14 | mMediaRecorder01.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
15 | mMediaRecorder01.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
16 | mMediaRecorder01.setOutputFile(myRecAudioFile.getAbsolutePath());
17 |
18 | mMediaRecorder01.prepare();
19 | mMediaRecorder01.start();
20 |
21 |
22 | sleep(5000);
23 | mMediaRecorder01.stop();
24 |
25 | mMediaRecorder01.release();
26 | mMediaRecorder01 = null;
--------------------------------------------------------------------------------
/exec的实践.js:
--------------------------------------------------------------------------------
1 | var nr = "W1School W2School W3SchoolW4SchoolW5School W6School W7School";
2 |
3 | function 筛选(i){
4 | var patt = /W\dSchool/g;//筛选的正则表达式
5 | var result;
6 | var YH = 0;
7 |
8 | while ((result = patt.exec(i)) != null) {
9 | //log(result)
10 | var a = result.index ;//这个匹配字符串的前一位位置
11 | var b = patt.lastIndex ;//这个匹配字符串的最后一个字符位置
12 | var c = result.input.substring(result.index,patt.lastIndex);//从字符串里提取一段字符
13 |
14 | log("字符串 开头:" + a + " 结尾:" + b + "\n" + "其字符为:" + c + "\n");
15 |
16 | YH++;//重复多少次就知道有多少个
17 | }
18 | log("匹配个数为" + YH);
19 | log(patt.exec(i).input);//返回被匹配的字符串数组
20 | log("字符个数为" + patt.exec(i).input.length + "\n");//返回被匹配的字符串数组
21 | }
22 |
23 | 筛选(nr)
24 |
25 |
--------------------------------------------------------------------------------
/心形手势(2)(1).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | toast("开启开发者选项-指针位置或者在画画软件才能查看效果");
4 |
5 | setScreenMetrics(1080, 1920);
6 |
7 | var points = [10000];
8 | var interval = 0.1;
9 | var x0 = device.width / 2;
10 | var y0 = device.height / 2;
11 |
12 | for (var t = -3; t <= 3; t = t + 0.001) {
13 | //坐标系的 x,y
14 | var x = 16 * Math.pow(Math.sin(t), 3);
15 | var y = 13 * Math.cos(t) - 5 * Math.cos(t * 2) - 2 * Math.cos(t * 3) - Math.cos(t * 4);
16 | //增大心
17 | x = x * 16;
18 | y = y * 16;
19 | //算出对于手机机的坐标 手机左上角是0,0
20 | x = x0 + x;
21 | y = y0 - y;
22 | //存入数组
23 | if (x < x0) {
24 | points.push([parseInt(x), parseInt(y)]);
25 | }
26 | if (x > x0) {
27 | points.push([parseInt(x), parseInt(y)]);
28 | }
29 | }
30 | gesture.apply(null, points);
--------------------------------------------------------------------------------
/戳一戳.js:
--------------------------------------------------------------------------------
1 | auto;
2 |
3 | sleep(200);
4 |
5 | launchApp("QQ")
6 |
7 | sleep(200)
8 |
9 | toast("选择聊天界面")
10 |
11 | sleep(500)
12 |
13 | while(!dialogs.confirm("确定已打开有戳一戳的页面?")){
14 | toast("5秒后再次询问")
15 | sleep(5000);
16 | }
17 |
18 | toast("戳死ta(◔◡◔)")
19 | sleep(500)
20 |
21 | for(var i = 0; i < 100; i++){
22 |
23 | press(172, 1327, 200);}
24 | {
25 | while (true) {
26 |
27 | var qr = dialogs.confirm("戳这些够了吧 ฅ( ̳• ◡ • ̳)ฅ");
28 | if(qr) {toast("谢谢使用"); exit();}
29 | else{toast("( ’ - ’ * )选择了取消!!!看来要继续戳!!!( ’ - ’ * )");
30 | sleep(600)
31 |
32 | for(var i = 0; i < 100; i++){
33 |
34 | press(172, 1327, 300);}}
35 | for (var i=1; i<50; i++){ sleep(100);}
36 | }
37 | }
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/百度文字识别(自动获取token).js:
--------------------------------------------------------------------------------
1 | function Baidu_OCR(imgFile) {
2 | access_token = http.get("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=YIKKfQbdpYRRYtqqTPnZ5bCE&client_secret=hBxFiPhOCn6G9GH0sHoL0kTwfrCtndDj").body.json().access_token;
3 | url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic" + "?access_token=" + access_token;
4 | imag64 = images.toBase64(images.read(imgFile));
5 | res = http.post(url, {headers: {'Content-Type': 'application/x-www-form-urlencoded'},image: imag64,image_type: "BASE64",language_type:"JAP"});
6 | str = JSON.parse(res.body.string()).words_result.map(val => val.words).join('\n');
7 | return str;
8 | }
9 |
10 | imgFile = "/storage/emulated/0/tencent/Tim_Images/-2c197ea407301935.jpg";
11 | log(Baidu_OCR(imgFile));
--------------------------------------------------------------------------------
/QQ清除好友聊天字体ok.js:
--------------------------------------------------------------------------------
1 | //11月25更新
2 | var info="sdcard/tencent/MobileQQ/.font_info"
3 | toastLog("请务必允许读写手机存储权限,以保证本应用的正常运行");
4 | if(confirm("是否将所有好友聊天字体更改为手机自带?","你可以选择“确定”,您的好友聊天字体将会替换为系统默认,或者您点击“取消”,还原好友的个性字体。"))
5 | {
6 | if(files.exists(info))
7 | {
8 | files.removeDir(info);
9 | files.createIfNotExists(info);
10 | toastLog("请刷新QQ查看");
11 | toast("已修改");
12 | toast("✧*。٩(ˊωˋ*)و✧*。")
13 | log("有问题联系QQ:894300458")
14 | }
15 | else{log("字体文件不存在");
16 | log("您可能已经修改字体,或者你没有QQ");
17 | exit();
18 | }}
19 |
20 | else{ files.remove(info);
21 | toastLog("好友字体已经还原")
22 | toastLog("请重启QQ");
23 | toast("y( ˙ᴗ. )耶~")
24 | }
25 | log("如果你想恢复原来的好友字体,请结束此程序的运行,重新打开。");
26 | log("此软件无毒无害,张建新制作");
27 | exit();
--------------------------------------------------------------------------------
/兼容安卓6、7的写法.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 定义常量
3 | */
4 | const IS_ANDROID7 = isAndroid7();
5 | const IS_ROOT = isRoot();
6 |
7 | /**
8 | * 根据常量写判断,也可以把Auto.JS安卓7和root的函数封装为自定义函数方便调用
9 | * 以下只是抛砖引玉
10 | */
11 | if (IS_ANDROID) {
12 | //这里写支持安卓7的代码
13 | }
14 | if (IS_ROOT) {
15 | //这里写安卓root的代码
16 | }
17 | if (!IS_ANDROID7 && !IS_ROOT) {
18 | toast("当前系统版本不是7+,也末ROOT,不支持坐标点击");
19 | exit();
20 | }
21 |
22 |
23 | /**
24 | * 判断安卓系统7+
25 | */
26 | function isAndroid7() {
27 | if (device.sdkInt >= 24) {
28 | return true;
29 | }
30 | }
31 |
32 | /**
33 | * 判断安卓系统ROOT
34 | */
35 | function isRoot() {
36 | if (files.exists('/su/bin/su') == true || files.exists('/system/bin/su') == true || files.exists('/system/xbin/su') == true) {
37 | return true;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/贴吧秒刷搜索排名.js:
--------------------------------------------------------------------------------
1 | //这个脚本在你自己发布帖子以后
2 | //在自己帖子页面执行脚本
3 | //基本能秒回复170楼层才会提示操作频繁
4 | //虽然提示操作频繁了,但是能把广告刷上搜索关键词首页
5 |
6 |
7 |
8 | //支付宝红包必备
9 | "auto"
10 | var array = [
11 | "q",
12 | "w",
13 | "e",
14 | "r",
15 | "t",
16 | "y",
17 | "u",
18 | "i",
19 | "o",
20 | "p",
21 | "a",
22 | "s",
23 | "d",
24 | "f",
25 | "g",
26 | "h",
27 | "j",
28 | "k",
29 | "l",
30 | "z",
31 | "x",
32 | "c",
33 | "v",
34 | "b",
35 | "n",
36 | "m"]
37 | while (true) {
38 |
39 | className("android.widget.TextView").id("pb_editor_tool_comment_reply_text").text("回复楼主").findOne().parent().click()
40 | sleep(random(100, 500))
41 | setText(array[random(1, 24)])
42 | sleep(random(10, 500))
43 | click("发表")
44 | }
--------------------------------------------------------------------------------
/马什么梅.js:
--------------------------------------------------------------------------------
1 | var count = function () {
2 | var count = 6
3 | return function () {
4 | return count++;
5 | }
6 | }()
7 |
8 | function thread(text, count) {
9 | threads.start(
10 | function () {
11 | for (let i = 0; i < 100; i++) {
12 | toastAt(text, 366, count * 100)
13 | sleep(20)
14 | }
15 | }
16 | )
17 | }
18 |
19 | function toastAt(msg, x, y) {
20 | ui.run(() => toastAt0(msg, x, y));
21 | }
22 |
23 | function toastAt0(msg, x, y) {
24 | importClass(android.widget.Toast);
25 | importClass(android.view.Gravity);
26 | var toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
27 | toast.setGravity(Gravity.TOP | Gravity.LEFT, x, y);
28 | toast.show();
29 | }
30 | thread('马', count())
31 | thread('冬', count())
32 | thread('梅', count())
33 |
--------------------------------------------------------------------------------
/!绿色守护-结束应用.js:
--------------------------------------------------------------------------------
1 | var kill = [
2 | "QQ",
3 | "微信",
4 | "哔哩哔哩",
5 | "动漫之家",
6 | "抖音短视频",
7 | "支付宝",
8 | "东方头条",
9 | "今日头条",
10 | "头条来了",
11 | "惠头条",
12 | "手机淘宝",
13 | "百度网盘",
14 | "趣头条",
15 | "迅雷",
16 | "饿了么",
17 | "酷安",
18 | "夸克",
19 | "美团外卖",
20 | "全民K歌",
21 | "网易云音乐",
22 | "下厨房",
23 | "QQ音乐",
24 | "搜图神器"
25 | ];
26 |
27 | for (x = 0; x < kill.length; x++) {
28 | killApp(kill[x]);
29 | };
30 | home();
31 |
32 | function killApp(name) {
33 | app.openAppSetting(app.getPackageName(name));
34 | sleep(150);
35 | //text("强行停止").waitFor();
36 | var k = text("强行停止").findOne(500);
37 | if (k.drawingOrder() == 2) {
38 | k.click();
39 | text("确定").findOne().click();
40 | }
41 | }
--------------------------------------------------------------------------------
/只点赞好友.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | var 延迟 = 100;
4 |
5 | launchApp("QQ");
6 | toast("请打开自己的资料页,点击点赞图标");
7 | sleep(500);
8 | waitForActivity("com.tencent.mobileqq.activity.VisitorsActivity");
9 |
10 | while(notStopped()){
11 | var list = className("AbsListView").findOne();
12 | list.children().each(function(child){
13 | if(!child)
14 | return;
15 | var l = child.findByText("(好友)");
16 | if(l.size() > 0){
17 | var like = child.findOne(className("ImageView").desc("赞"));
18 | for(let i = 0; i < 10; i++){
19 | like.click();
20 | sleep(延迟);
21 | }
22 | }
23 | });
24 | click("显示更多");
25 | click("显示更多");
26 | if(currentActivity() == "com.tencent.mobileqq.activity.VisitorsActivity"){
27 | list.scrollForward();
28 | }
29 | }
--------------------------------------------------------------------------------
/读短信 10条.js:
--------------------------------------------------------------------------------
1 | importClass(android.net.Uri);
2 | importClass(android.database.Cursor);
3 | importClass(android.content.ContentResolver);
4 |
5 | var SMS_INBOX = Uri.parse( "content://sms/" );
6 | var cr = context.getApplicationContext().getContentResolver();
7 | var projection=new Array("_id" , "address" , "person" , "body" , "date" , "type" );
8 | var cur = cr.query(SMS_INBOX, projection, null , null , "date desc" );
9 | var i=0;
10 | while (cur.moveToNext()) {
11 | i=i+1;
12 | var number = cur.getString(cur.getColumnIndex("address"));//手机号
13 | var name = cur.getString(cur.getColumnIndex("person"));//联系人姓名列表
14 | var body = cur.getString(cur.getColumnIndex("body"));//短信内容
15 | toastLog(number);
16 | toastLog(name);
17 | toastLog(body);
18 | if(i>10){break;}
19 | }
20 |
--------------------------------------------------------------------------------
/饿了么签到.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 |
3 | var 饿了么 = function () {
4 | app.launchApp("饿了么");
5 | waitForActivity("me.ele.application.ui.home.d");
6 | sleep(300);
7 | var me=desc("我的").findOne();
8 | while (!me.parent().click());
9 | 签到文字 = text("签到领红包").findOne(200);
10 | if (!签到文字) {
11 | log("饿了吗签到失败");
12 | return;
13 | }
14 | 签到文字.parent().click();
15 | 签到();
16 | }
17 |
18 | function 签到() {
19 | waitForActivity("me.ele.component.web.c");
20 | sleep(200);
21 | if (desc("签到").findOnce()) {
22 | log("进入");
23 | desc("签到").findOnce().click();
24 | sleep(1000);
25 | 翻牌();
26 | }
27 | }
28 |
29 | function 翻牌(){
30 | click(device.width/2,device.height/2);
31 | }
32 |
33 | // module.exports = 饿了么;
34 | 饿了么();
--------------------------------------------------------------------------------
/autoGetCatCoin.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | function clickAndBack(point){
4 | point.click();
5 | sleep(2000);
6 |
7 | swipe(500, 1500, 500, 1000, 2000);
8 | sleep(17000);
9 |
10 | //点完后退
11 | back();
12 | //暂停加载
13 | sleep(1500);
14 | }
15 |
16 | function goShop() {
17 |
18 | let n = 1;
19 | while (n < 20) {
20 | let point = text("去进店").findOne(2000);
21 | if(point == null) return ;
22 | // log("join: "+point)
23 | clickAndBack(point)
24 | }
25 |
26 | }
27 |
28 | function goLook(){
29 | while(true){
30 | let point = text("去浏览").findOne(2000);
31 | if(point == null) return ;
32 | // log("join: "+point)
33 | clickAndBack(point)
34 | }
35 | }
36 |
37 | goShop();
38 |
39 | goLook();
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/qq批量建群(不完美).js:
--------------------------------------------------------------------------------
1 | auto.waitFor()
2 | launchApp("QQ")
3 | //先把要拉的人拉进一个群,并顶置该群
4 | for (i = 0; i < 4/*一个时段只能建4个*/; i++) {
5 | waitForActivity("com.tencent.mobileqq.activity.SplashActivity")
6 | className("ImageView").click()
7 | text("创建群聊").findOne().parent().click()
8 | text("从群聊中选择").click()
9 | waitForActivity("com.tencent.mobileqq.activity.selectmember.SelectMemberActivity")
10 | className("AbsListView").findOne().child(1).click()
11 | className("CheckBox").waitFor()
12 | className("FrameLayout").untilFind().click()
13 | textContains("立即创建\(").click()
14 | textContains("已选择").findOne().parent().click()
15 | id("input").waitFor()
16 | sleep(1200)
17 | if (textContains("取个名字").exists()) {
18 | id("rlCommenTitle").findOne().child(0).click()
19 | }
20 | }
--------------------------------------------------------------------------------
/00-读&删指定文本行.js:
--------------------------------------------------------------------------------
1 | /*
2 | **脚本作用:读取指定路径txt文本,读取有效的一行并删除该行
3 | **脚本源码:Hyun Mai
4 | **代码优化及测试:魚離ヤ吥開氺
5 | **时间:2019.03.28
6 | **测试系统:安卓8.1
7 | **Auto.js版本: 4.1.1
8 | 优化内容:
9 | 正则匹配去除不规范行
10 | 如删除空白行,去除行内容前后空格等
11 | 正确读取有效行,并删除改行
12 | */
13 | //测试读&&删/去空白行,去字符串前后空格
14 |
15 | toastLog(read_delete());
16 |
17 |
18 | function read_delete() {
19 | var path = "/sdcard/1/1.txt"; //txt文本路径
20 | var reg = /^\s+|\s+$/g; //匹配无效空白行
21 | var txt = files.read(path).replace(reg, "").split("\n");
22 | let ret_text = txt[0];
23 | log(ret_text.length);
24 | if (txt != "") {
25 | txt.splice(0, 1);
26 | files.write(path, txt.join("\n"));
27 | if (ret_text.length > 0) {
28 | return ret_text.trim();
29 | }
30 | } else {
31 | return "没有号了";
32 | }
33 |
34 | }
--------------------------------------------------------------------------------
/QQ名片点赞(只点赞好友).js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | var 延迟 = 100;
4 |
5 | launchApp("QQ");
6 | toast("请打开自己的资料页,点击点赞图标");
7 | sleep(500);
8 | waitForActivity("com.tencent.mobileqq.activity.VisitorsActivity");
9 |
10 | while(notStopped()){
11 | var list = className("AbsListView").findOne();
12 | list.children().each(function(child){
13 | if(!child)
14 | return;
15 | var l = child.findByText("(好友)");
16 | if(l.size() > 0){
17 | var like = child.findOne(className("ImageView").desc("赞"));
18 | for(let i = 0; i < 10; i++){
19 | like.click();
20 | sleep(延迟);
21 | }
22 | }
23 | });
24 | click("显示更多");
25 | click("显示更多");
26 | if(currentActivity() == "com.tencent.mobileqq.activity.VisitorsActivity"){
27 | list.scrollForward();
28 | }
29 | }
--------------------------------------------------------------------------------
/QQ语音.js:
--------------------------------------------------------------------------------
1 | importPackage(java.io);
2 | importPackage(java.text);
3 | importPackage(java.util);
4 | replace("/storage/sdcard0/tencent/MobileQQ/1289788761/ptt/group_20180219021019885.slk", "1289788761");
5 |
6 | function replace(src, qq) {
7 | var date = new Date();
8 | var allFile = new File("/storage/sdcard0/tencent/MobileQQ/" + qq + "/ptt/" + new SimpleDateFormat("yyyyMM").format(date) + "/" + new SimpleDateFormat("dd").format(date) + "/").listFiles();
9 |
10 | var toFile = Collections.max(Arrays.asList(allFile), {
11 | compare: function(p1, p2) {
12 | return p1.lastModified() - p2.lastModified();
13 | }
14 | });
15 | //toastLog(toFile);
16 | var toPath = toFile.getAbsolutePath();
17 | files.remove(toPath);
18 | files.copy(src, toPath);
19 | toFile.setLastModified(date.getTime());
20 | }
--------------------------------------------------------------------------------
/应用工具.js:
--------------------------------------------------------------------------------
1 | var i = dialogs.select("请选择工具", "获取应用包名", "打开应用详情页", "卸载应用");
2 |
3 | if(i == -1){
4 | alert("没有选择任何工具!");
5 | }
6 |
7 | switch(i){
8 | case 0:
9 | //获取应用包名
10 | appName = rawInput("请输入应用名称", "QQ");
11 | packageName = getPackageName(appName);
12 | toast(packageName);
13 | setClip(packageName);
14 | toast("已复制到剪贴板");
15 | break;
16 | case 1:
17 | //打开应用详情页
18 | appName = rawInput("请输入应用名称", "微信");
19 | openAppSetting(getPackageName(appName));
20 | break;
21 | case 2:
22 | //卸载应用
23 | appName = rawInput("请输入应用名称");
24 | packageName = getPackageName(appName);
25 | if(packageName == ""){
26 | toast("应用不存在");
27 | }else if(confirm("确定卸载应用" + packageName + "吗?")){
28 | app.uninstall(packageName);
29 | }
30 | break;
31 | }
--------------------------------------------------------------------------------
/悬浮窗下拉框.js:
--------------------------------------------------------------------------------
1 | var w = floaty.rawWindow(
2 |
3 | 悬浮文字
4 |
5 |
6 | 下拉菜单
7 |
8 |
9 |
10 |
11 | );
12 | w.setPosition(500, 500);
13 |
14 |
15 |
16 | w.sp1.on("key", function(keyCode, event){
17 | if(event.getAction() == event.ACTION_DOWN && keyCode == keys.back){
18 | w.disableFocus();
19 | event.consumed = true;
20 | }
21 | });
22 |
23 | w.sp1.on("touch_down", ()=>{
24 | w.requestFocus();
25 | w.sp1.requestFocus();
26 | });
27 |
28 | setTimeout(() => {
29 | w.close();
30 | }, 5000);
--------------------------------------------------------------------------------
/获取通讯录.js:
--------------------------------------------------------------------------------
1 | /**
2 | *Usedfor: Auto.js Pro
3 | *Author: Hyun Mai QQ:2668649892
4 | *Features: 读取通讯录联系人
5 | *Tips: 请先允许读取通讯录权限
6 | */
7 |
8 |
9 | importClass(android.database.Cursor);
10 |
11 | var cursor = context.getContentResolver().query(android.provider.ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
12 | while (cursor.moveToNext()) {
13 | //读取通讯录的姓名
14 | var name = cursor.getString(cursor.getColumnIndex(android.provider.ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
15 | //读取通讯录的号码
16 | var number = cursor.getString(cursor.getColumnIndex(android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER));
17 | if (name != number) {
18 | log("[名字]:" + name + " [号码]:" + number);
19 | } else {
20 | log("[号码]:" + number);
21 | }
22 | }
--------------------------------------------------------------------------------
/js进阶教程03.js:
--------------------------------------------------------------------------------
1 | /*
2 | 两次实例的目的一样,结果却不同,对,数据类型的不同,只有对象才能进行.的运算操作,log(a.b),这段代码的含义是,输出一个对象a里面一个下标为b的值
3 | 那么问题来了,某某.某某,前者必须是对象类型(Object)我们再来看看实例一,a.length,这里的a数据类型为String字符串类型,那么你可以理解为字符串.length
4 | 在正常情况下肯定是会报错的,其实在这里,JavaScript做了一个我们看不见的运算,当执行到a.length的时候,JavaScript会临时把a字符串包装成String对象,然后获取
5 | a的内容,再获取该对象的length属性,最后,这个临时的对象被释放,那么执行a.length 的时候JavaScript做了四步我们看不见的运算,第一步,把字符串类型的a包装成
6 | String对象类型的a;第二部,获取该对象a的值;第三步,获取该对象的length属性,第四部,释放该变量,也就是把String对象类型转换为String类型,String类型在实例二
7 | 有介绍
8 |
9 | var String对象 = new String("我是字符串对象,我有length属性");
10 | var 普通String字符串 = "我是个普通的字符串,我没有length属性";
11 |
12 | */
13 | console.show();
14 |
15 | //实例1
16 | var a = '大家好我是留一手';
17 | log('a变量的长度为:'+a.length+'\na变量的数据类型为'+typeof(a));
18 |
19 | //实例2
20 | var b = new String('大家好我是留一手');
21 | log('a变量的长度为:'+b.length+'\na变量的数据类型为'+typeof(b));
--------------------------------------------------------------------------------
/群签到(请手动打开脚本修改需要签到的群号).js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 | var qun = ["群号1", "群号2", "群号3", "群号4", "群号5"];
3 | for (let i = 0; i < qun.length; i++) {
4 | var c = base64("https://qun.qq.com/qqweb/m/qun/checkin/index.html?gc=" + qun[i] + "&state=1");
5 | app.startActivity({
6 | action: "android.intent.action.VIEW",
7 | data: "mqqapi://forward/url?url_prefix=" + c + "&version=1&src_type=web"
8 | });
9 | text("发表").waitFor();
10 | var c = text("要认真签个到").findOne().bounds()
11 | click(c.centerX(), c.centerY());
12 | sleep(50)
13 | setText("橘猫~")
14 | sleep(300);
15 | while (!click("发表"));
16 | id("title").findOne()
17 | sleep(100);
18 | };
19 |
20 | function base64(str) {
21 | return java.lang.String(android.util.Base64.encode(java.lang.String(str).getBytes(), 2));
22 | };
--------------------------------------------------------------------------------
/UI验证码(有BUG).js:
--------------------------------------------------------------------------------
1 | "ui";
2 | var A = random(1000, 9000)
3 | main();
4 | function main() {
5 | ui.layout(
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | );
14 | }
15 |
16 | ui.hq.on("click", () => {
17 | scyzm();
18 | });
19 |
20 | function scyzm() {
21 | dialogs.confirm("验证码是" + A)
22 | }
23 | ui.ok.on("click", () => {
24 | pd();
25 | });
26 |
27 | function pd() {
28 | var B = ui.yzm.text();
29 | if (A == B) {
30 | dialogs.alert("正确")
31 | } else {
32 | dialogs.alert("错误")
33 | }
34 | }
35 | //超丑代码你看个鸟
36 | //bug:每运行一次只能生产一个验证码
--------------------------------------------------------------------------------
/在ui中使用悬浮窗demo.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 作者: 家
3 | * QQ: 203118908
4 | * 功能: 在ui中使用悬浮窗demo
5 | */
6 | 'ui';
7 | ui.layout(
8 |
9 |
10 |
11 |
12 | )
13 | var w;
14 | ui.show.on('click',function(){
15 | toastLog('show')
16 | if(w){
17 | w.setSize(666,666)
18 | }else{
19 | threads.start(
20 | function(){
21 | w = floaty.rawWindow(
22 |
23 | 悬浮文字
24 |
25 | );
26 | w.setSize(666,666)
27 | }
28 | )
29 | }
30 | })
31 | ui.hide.on('click',function(){
32 | toastLog('hide')
33 | w.setSize(1,1)
34 | })
35 | setInterval(
36 | function(){
37 | },1000
38 | )
39 |
--------------------------------------------------------------------------------
/一键运行脚本v3.js:
--------------------------------------------------------------------------------
1 | var folder = "/sdcard/脚本/签到/";//脚本文件夹
2 | var cancelsign = "##";//取消运行标志
3 | var checktime = 5;//每5秒检查一次脚本状态,结束了就运行下一个
4 | var timeout = 90;//90秒超时,超过后强制停止、运行下一个
5 |
6 | //浅叶制作
7 | Alljs = files.listDir(folder,function(name){
8 | if (name.indexOf(cancelsign) != -1){
9 | return false;
10 | }
11 | return name.endsWith(".js");
12 | });
13 |
14 | for (x in Alljs){
15 | var egn;var egm;
16 | egn = engines.execScriptFile(folder + Alljs[x]);
17 | sleep(500);
18 | egm = egn.getEngine();
19 |
20 | for (var i=0;i < timeout;i = i + checktime){
21 | if (egm.isDestroyed ()){
22 | break;
23 | }
24 | toastLog("已等待"+i+"秒")
25 | sleep(checktime * 1000)
26 | }
27 |
28 | sleep(1000);
29 | egm.forceStop();
30 | }
31 |
32 | toast("已完成所有脚本");
--------------------------------------------------------------------------------
/沙雕网友.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | var usay;
4 | var r;
5 | var str;
6 | var res;
7 | var a;
8 |
9 |
10 | ui.layout(
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | );
19 |
20 | ui.ok.click(function()
21 | {
22 | usay = ui.u.getText();
23 | threads.start(function()
24 | {
25 | r = http.postJson("http://www.tuling123.com/openapi/api", { key: "65458a5df537443b89b31f1c03202a80",
26 | info: usay, userid: "1", });
27 | str=JSON.stringify(r.body.string());
28 | res=JSON.parse(str);
29 | a=JSON.parse(res).text;
30 | });
31 |
32 | setText(0,a);
33 | });
--------------------------------------------------------------------------------
/QQ点赞.js:
--------------------------------------------------------------------------------
1 | console.show()
2 | var 赞 = className("ImageView").desc("赞").untilFind();
3 | var tu = descContains("次赞");
4 | var 名片界面 = desc("编辑资料").text("编辑资料");
5 |
6 | function 下滑() {
7 |
8 | className("AbsListView").id("name").scrollable().scrollForward();
9 |
10 | }
11 |
12 | function 名片() {
13 | if (名片界面.findOne(1000)) {tu.click()
14 | log("名片界面")
15 | }
16 | else if(赞){log("开始点赞");点赞()}
17 | else {
18 | log("正在寻找")
19 | }
20 |
21 |
22 |
23 | }
24 |
25 |
26 |
27 | function 点赞() {
28 | 赞
29 | .each(function(item) {
30 | for (var i = 0; i < 5; i++) {
31 | log("点赞");
32 | item.click();
33 | sleep(100)
34 | }
35 |
36 |
37 | });
38 |
39 | 下滑()
40 | }
41 |
42 |
43 | for (;;) {
44 | 名片()
45 | }
--------------------------------------------------------------------------------
/手机号码归属地查询.js:
--------------------------------------------------------------------------------
1 | var numbel=dialogs.rawInput("请输入你要查询的号码:","");
2 | var url = "http://m.ip138.com/mobile.asp?mobile=";
3 | var html = http.get(url+numbel).body.string();
4 | html = cutstr(html, "", 2, 20);
5 | html= html.replace(/[<>\/tdspan]+/g, "\n").split("\n");
6 | dialogs.alert("查询的号码:"+numbel+"\n"+"\n"+"①"+html[1]+"\n"+html[2]+"\n"+"②"+html[3]+":"+html[4]+"\n"+"③"+html[5]+":"+html[6]+"\n"+"④"+html[7]+":"+html[8]);
7 |
8 | function cutstr(a, b, c, f, e) {
9 | a = a.split(b);
10 | var d = ""
11 | if (e < a.length && e != null) {} else {
12 | e = a.length;
13 | }
14 | if (f == null) {
15 | f = 1;
16 | }
17 | for (i = f; i < e; i++) {
18 | tmp = a[i].split(c);
19 | if (tmp.length > 1) {
20 | d += tmp[0];
21 | }
22 | }
23 | return d;
24 | }
--------------------------------------------------------------------------------
/格式化 Key.js:
--------------------------------------------------------------------------------
1 | //By Chr_2017.11.23
2 | var clip = getClip()
3 | var reg = new RegExp('[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}', 'ig')
4 | var keys = new Array
5 | var result = null
6 | var crlf = '\n'
7 | var i
8 |
9 | //12345-67890-09876
10 | for (;;) {
11 | result = reg.exec(clip)
12 | if (result != null) {
13 | keys.push(result)
14 | } else {
15 | break
16 | }
17 | }
18 |
19 | i = keys.length
20 |
21 | if (i != 0) {
22 |
23 | result = '!r ' + keys.toString()
24 | setClip(result)
25 |
26 | result = '处理结果:' + crlf + result + crlf + crlf + '剪贴板内容:' + crlf + clip
27 |
28 |
29 | if (i > 30) {
30 | result = '*Key过多,容易导致冷却' + crlf + crlf + result
31 | }
32 | alert('完成 已复制 ' + i.toString() + ' 个 Steam Key', result)
33 |
34 | } else {
35 | alert('错误', '在剪贴板中没有找到Steam Key')
36 | }
--------------------------------------------------------------------------------
/QQ删除说说.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | //在次说明,我写这个脚本只希望帮大家解决繁琐的操作
4 | //不希望各位将这脚本拿来恶搞
5 |
6 | //因为我在720*1280分辨率的手机写的,其他适不适合不清楚,有问题联系我QQ:2261988895
7 |
8 | sleep(4567);
9 | requestScreenCapture();
10 |
11 | function 检测(){
12 | var a = text("写说说").findOne().bounds();
13 | var YH = findColorInRegion(captureScreen(), "#A1A1A1", a.centerX()+a.width()/3, a.centerY(), 3, 300);
14 | if(YH){
15 | click(YH.x,YH.y);
16 | }
17 |
18 | }
19 |
20 | threads.start(function(){
21 | //i<10这个设定可以控制删多少条说说
22 | //在这里只删10条,可以改成100,这样就删100条
23 | for(var i=0; i<10; i++){
24 | text("删除").findOne().parent().parent().click();
25 | }
26 | });//子线程
27 |
28 | threads.start(function(){
29 | for(;;){
30 | click("确认");
31 | }
32 | });//子线程
33 |
34 | for(;;){
35 | 检测();
36 | sleep(500);
37 | }//主线程
38 |
39 |
--------------------------------------------------------------------------------
/停止给定名字脚本StopEngine.js:
--------------------------------------------------------------------------------
1 | /*此代码保存为 StopEngine.js
2 | 在调用方使用: 声明 var stscript= require('./StopEngine.js');
3 | 调用 stscript("1.js");
4 | 代码作用: 停止给定脚本。
5 | 疑问:模块单独运行会提示错误
6 | 不黑从autojs论坛保存
7 | */
8 |
9 |
10 | function stopscript(scriptname){
11 | var execution=engines.all();
12 | for(var i=0;i
8 |
9 |
10 |
11 |
12 |
13 |
14 | )
15 | w.fbName.setOnCheckedChangeListener(
16 | function (radioGroup,id){
17 | var count=radioGroup.getChildCount()
18 | var id=id % count -1
19 | if(id==-1){
20 | id=count-1
21 | }
22 | log('你选择的单选按钮id=',radioGroup.getCheckedRadioButtonId())
23 | var radioText=radioGroup.getChildAt(id).getText()
24 | log('你选择的单选按钮id=',radioGroup.getCheckedRadioButtonId(),' 单选按钮文本=',radioText)
25 | }
26 | )
27 | w.setPosition(300,300)
28 | w.setTouchable(true)
29 | sleep(10000)
30 |
--------------------------------------------------------------------------------
/多线程.js:
--------------------------------------------------------------------------------
1 | console.show();
2 | var thread = new java.lang.Thread(new java.lang.Runnable({
3 | run: function() {
4 | var a=ac;
5 | for(var i=0;i< 30;i++){
6 | //log(a+i);
7 | //thread.sleep(5); //线程暂停
8 | //thread.wait();
9 | //thread.stop(); //线程停止
10 | }
11 | }
12 | })); //定义一个线程
13 | var ac="a";
14 | log(thread.alive);
15 | thread.start(); //线程开始执行
16 | log(thread.alive);
17 | //thread.join(); //等待线程执行完闭
18 | thread.interrupt();
19 | //log(3);
20 | log(thread.alive);
21 | log(thread ? true : false);
22 | Details(thread);
23 |
24 |
25 | function Details(A) {
26 | log(A);
27 | try {
28 | log(A.toString());
29 | } catch (e) {};
30 | for (var i in A) {
31 | try {
32 | log(i + "\n" + A[i].toString())
33 | } catch (e) {}
34 | };
35 | };
--------------------------------------------------------------------------------
/循环点击.js:
--------------------------------------------------------------------------------
1 | auto("fast");
2 | var help=" "+"查看并获取X,Y坐标方法:\n\n"
3 | +"设置→更多设置→开发者选项→指针位置;"
4 | var cm=confirm(help)
5 | if(cm){
6 | var 循环次数 = dialogs.input("请输入点击次数!");
7 | var x坐标 =dialogs.input("请输入要点击的x坐标!");
8 | var y坐标 = dialogs.input("请输入要点击的y坐标!");
9 | var delay= dialogs.input("请输入点击间隔!\n"+"1000毫秒=1秒!\n"+"单位毫秒!")
10 | var sure = confirm("确定开始点击?");
11 | if(sure){
12 | var i;
13 | var s=循环次数+1
14 | console.show()
15 | function 倒计时(){
16 | for(var o=8;o>0;o--){
17 | sleep(980)
18 | console.error("请在"+" ",o," "+"秒内打开要点击的界面!!")
19 | sleep(1000)
20 | console.clear()
21 | }
22 | }
23 | 倒计时()
24 | for(i=1;i
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | );
14 | threads.start(function() {
15 | var str="";
16 | //遍历ui.h对象
17 | for (var i in ui.h) {
18 | //打印对象值
19 | str+=i+" ";
20 | }
21 | ui.data.setText(str);
22 | });
23 | ui.bt.click(() => {
24 | if (ui.bt.getText() == "隐藏") {
25 | ui.bt.setText("显示");
26 | ui.h.visibility = 8;
27 | toast("内容已隐藏!");
28 | } else {
29 | ui.bt.setText("隐藏");
30 | ui.h.visibility = 0;
31 | toast("内容已显示!");
32 | }
33 | });
--------------------------------------------------------------------------------
/手电(简陋版).js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 | //相机是做不出来了,所以只好做个手电了
8 | //可能不稳定,原因可能是太快了 自己测试
9 | var Camera=android.hardware.Camera;
10 | var camera = Camera.open();
11 | var mParameters = camera.getParameters();
12 | ui.button.on("click", ()=>{
13 | if(ui.button.text()=="开"){
14 | mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
15 | camera.setParameters(mParameters);
16 | ui.button.setText("关");
17 | on=true;
18 | }else{
19 | mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
20 | camera.setParameters(mParameters);
21 | ui.button.setText("开");
22 | }
23 | });
24 | /*
25 | ui.button.on("long_click",()=>{
26 | for(var i=0;i<10;i++){
27 | camera.setParameters(mParameters);
28 | }
29 | ui.button.setText("关");
30 | });
31 | */
--------------------------------------------------------------------------------
/无障碍测试.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 |
8 | );
9 |
10 |
11 | threads.start(function() {
12 | auto();
13 | sleep(100);
14 | className("android.widget.Button").findOne().click();
15 | sleep(100);
16 | if (String(ui.but.getText())) {
17 | toastLog("控件测试成功");
18 | } else {
19 | toastLog("控件测试失败");
20 | };
21 | sleep(100);
22 | click(device.width / 2, device.height / 4 * 3);
23 | sleep(100);
24 | if (String(ui.but2.getText())) {
25 | toastLog("坐标测试成功");
26 | } else {
27 | toastLog("坐标测试失败");
28 | };
29 | });
30 |
31 | ui.but.click(function(v) {
32 | v.setText("成功");
33 | });
34 | ui.but2.click(function(v) {
35 | v.setText("成功");
36 | });
--------------------------------------------------------------------------------
/1别踩白块.js:
--------------------------------------------------------------------------------
1 | auto();
2 | if(!requestScreenCapture()){
3 | toast("请求截图失败");
4 | exit();
5 | }
6 | var i=0;
7 | threads.start(function(){
8 | sleep(500);
9 | i=i+1;
10 | });
11 | while(true){
12 | var img=captureScreen();
13 | var point1 = findColor(img, "#000000", {
14 | region: [90,1000, 5, 20],
15 | threshold: 0
16 | });
17 | var point2 = findColor(img, "#000000", {
18 | region: [360, 1000, 5, 20],
19 | threshold: 0
20 | });
21 | var point3 = findColor(img, "#000000", {
22 | region: [660, 1000, 5, 20],
23 | threshold: 0
24 | });
25 | var point4 = findColor(img, "#000000", {
26 | region: [900, 1000, 5, 20],
27 | threshold: 0
28 | });
29 |
30 | if(point1){click(90,1050+i)};
31 | if(point2){click(360,1050+i)};
32 | if(point3){click(660,1050+i)};
33 | if(point4){click(900,1050+i)};
34 | sleep(5);
35 |
36 | }
--------------------------------------------------------------------------------
/shuabaoviod.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();//获取无障碍;
2 | let min =7
3 | let max = 15
4 | var count = 1;
5 | var window = floaty.window(
6 |
7 |
8 |
9 | );
10 |
11 |
12 | while(true){
13 | cs = randmon_time_swipe();
14 | ui.run(function(){
15 | window.text.setText("当前脚本执行第:"+cs+"次");
16 | });
17 | }
18 |
19 | /**
20 | * 随机时间滑动
21 | */
22 | function randmon_time_swipe(){
23 | rand_time = random(min , max)*1000;
24 | //不规则滑行
25 | x = random(100, device.width-100);//初始点x
26 | y = random(device.height/2+100,device.height/2+200)//初始点y
27 | x1= x;
28 | y1= random(140,200)
29 | log(x+','+y +';'+x1+','+y1)
30 | sleep(rand_time)
31 | swipe(x,y,x1,y1,random(1000,1500));
32 | count++;
33 | return count;
34 | }
35 |
--------------------------------------------------------------------------------