├── .gitignore
├── .vscode
└── autojs.code-snippets
├── 乱七八糟
├── Demo
│ ├── canvas
│ │ ├── 一直在跳的球255.js
│ │ ├── 图片加文字383.js
│ │ ├── 图片加水印.js
│ │ ├── 画正方形.js
│ │ ├── canvas画正方形117.js
│ │ ├── 截图水印.js
│ │ └── 截图水印412.js
│ ├── 获取手机粘贴板.js
│ ├── pro商店的脚本
│ │ ├── ui启动ui-1.0.0.1
│ │ │ ├── ui.js
│ │ │ └── main.js
│ │ ├── .DS_Store
│ │ ├── 二维码自定义生成-1.0.0.1
│ │ │ └── res
│ │ │ │ └── logo.png
│ │ ├── 亲戚关系计算器-1.0.0.1
│ │ │ └── res
│ │ │ │ └── logo.png
│ │ ├── 悬浮教程文档-1.0.0.1
│ │ │ └── res
│ │ │ │ └── logo.png
│ │ ├── 一般常用函数模块-1.0.15.1015
│ │ │ └── lib
│ │ │ │ └── RootTools-3.4.jar
│ │ ├── 更新UI悬浮窗样例-1.0.0.1
│ │ │ ├── res
│ │ │ │ └── img
│ │ │ │ │ └── download_bg-1.png
│ │ │ └── project.json
│ │ ├── 文件选择对话框-1.0.1.2
│ │ │ └── main.js
│ │ ├── Uiobject节点的智能提示(包含文档中没有的api)-1.0.0.1
│ │ │ └── main.js
│ │ ├── 脚本引擎实现顺序执行-1.0.0.1
│ │ │ ├── 脚本1.js
│ │ │ ├── 脚本2.js
│ │ │ ├── 脚本3.js
│ │ │ ├── main.js
│ │ │ └── project.json
│ │ ├── 跑马灯-1.0.0.1
│ │ │ └── project.json
│ │ ├── 打手那个枪-1.0.0.1
│ │ │ └── project.json
│ │ ├── 刮刮卡之佐罗-1.0.0.1
│ │ │ └── project.json
│ │ ├── 录屏简单实现-1.0.0.1
│ │ │ └── project.json
│ │ └── 无情的打字机-1.0.0.0
│ │ │ └── project.json
│ ├── 工具箱
│ │ ├── 脚本排队
│ │ │ ├── 1.js
│ │ │ ├── 3.js
│ │ │ └── 2.js
│ │ ├── 脚本通信
│ │ │ ├── broadcast通信
│ │ │ │ ├── 后发送.js
│ │ │ │ └── 先监听.js
│ │ │ ├── 脚本结束事件.js
│ │ │ ├── engines通信
│ │ │ │ ├── 2.js
│ │ │ │ └── 1.js
│ │ │ └── ScriptEngine_emit通信
│ │ │ │ ├── 1.js
│ │ │ │ └── 2.js
│ │ ├── 抓取logcat日志453.js
│ │ ├── .DS_Store
│ │ ├── 二维码
│ │ │ ├── 二维码识别.dex
│ │ │ └── 图片二维码识别.js
│ │ ├── 脚本排队第二种
│ │ │ ├── 2.js
│ │ │ ├── 3.js
│ │ │ └── 1.js
│ │ ├── 数组填充.js
│ │ ├── 脚本引擎实现顺序执行
│ │ │ ├── 脚本1.js
│ │ │ ├── 脚本2.js
│ │ │ ├── 脚本3.js
│ │ │ ├── main.js
│ │ │ └── project.json
│ │ ├── 一个字一个字输入
│ │ ├── 微信直接跳转扫一扫243.js
│ │ ├── 获取对象属性.js
│ │ ├── 监听一次toast.js
│ │ ├── 调整手机音量402.js
│ │ ├── shell开关飞行模式135.js
│ │ ├── 结束autojs自己.js
│ │ ├── 改变toast位置120.js
│ │ ├── 模板字符串408.js
│ │ ├── 停止除了自身的脚本250.js
│ │ ├── 删除行.js
│ │ ├── cookie.js
│ │ ├── 1获取当前app名字122.js
│ │ ├── 二维码识别186.js
│ │ ├── 实时显示脚本运行时长214.js
│ │ ├── 双击返回退出的ui266.js
│ │ ├── 1删除重写@data@data@com.aaa.bbb226.js
│ │ ├── shell启动脚本.js
│ │ ├── 单例模式.js
│ │ ├── 提取广播数据126.js
│ │ ├── 读写@data目录文件379.js
│ │ ├── 繁简转换
│ │ │ └── 繁简转换.js
│ │ ├── 最大公约数.js
│ │ ├── activity.js
│ │ ├── 微信搜索框输入消息291.js
│ │ ├── 马冬梅.js
│ │ ├── 手机号码归属地查询238.js
│ │ ├── 微信朋友圈分享256.js
│ │ ├── 停止给定名字脚本StopEngine161.js
│ │ ├── 小米锁屏解锁密码8888136.js
│ │ ├── 实心158.js
│ │ ├── 线段上的所有点.js
│ │ ├── 编辑距离py2js318.js
│ │ └── music110.js
│ ├── 电脑知识点
│ │ └── win7结束任务.txt
│ ├── .DS_Store
│ ├── UI
│ │ ├── .DS_Store
│ │ ├── 手勢模塊
│ │ │ └── 44.png
│ │ ├── 在别的脚本中获取ui的控件属性
│ │ │ ├── 获取ui模块中按钮的文本.js
│ │ │ └── ui模块.js
│ │ ├── 一开始不要显示输入法.js
│ │ ├── UI和悬浮窗一起使用的完整栗子
│ │ │ ├── main.js
│ │ │ ├── window在屏幕之内.js
│ │ │ ├── 带属性的悬浮窗.js
│ │ │ ├── view点击事件.js
│ │ │ └── 悬浮窗输入框.js
│ │ ├── 悬浮窗和UI一起使用的例子
│ │ │ ├── main.js
│ │ │ ├── window在屏幕之内.js
│ │ │ ├── 带属性的悬浮窗.js
│ │ │ └── view点击事件.js
│ │ ├── 全局半透明背景1192.js
│ │ ├── 图片圆角.js
│ │ ├── 按钮平分.js
│ │ ├── webViewClient的用法.js
│ │ ├── 显示网页.js
│ │ ├── ui多界面215.js
│ │ ├── 全屏显示背景图191.js
│ │ ├── 随机颜色.js
│ │ ├── ui延时.js
│ │ ├── webviewClient的使用方法.js
│ │ ├── 复选框.js
│ │ ├── 输入框光标.js
│ │ ├── windowFlag.js
│ │ ├── 监听
│ │ │ └── 输入框删除监听.js
│ │ ├── switch控件.js
│ │ ├── Switch控件242.js
│ │ ├── 获取ui界面左上角坐标.js
│ │ ├── 双击返回退出的ui.js
│ │ ├── activity.js
│ │ ├── 在ui中使用悬浮窗demo.js
│ │ ├── list显示脚本文件夹下所有js文件.js
│ │ ├── webView填充表单.js
│ │ ├── 动态显示隐藏布局156.js
│ │ ├── webView输入关键词搜索.js
│ │ ├── list隔行变色.js
│ │ ├── activity和context.js
│ │ ├── WebView简单示例安卓调用js428.js
│ │ ├── 保存imgView加载的图片.js
│ │ ├── 获取UI界面控件宽度和高度.js
│ │ ├── 帧布局139.js
│ │ ├── 表格布局283.js
│ │ ├── ui显示日志.js
│ │ └── 循环缩放webView.js
│ ├── 悬浮窗
│ │ ├── .DS_Store
│ │ ├── 悬浮窗单位px.js
│ │ ├── UI和悬浮窗一起使用的完整栗子
│ │ │ ├── main.js
│ │ │ ├── window在屏幕之内.js
│ │ │ ├── 带属性的悬浮窗.js
│ │ │ ├── view点击事件.js
│ │ │ └── 悬浮窗输入框.js
│ │ ├── 悬浮窗和UI一起使用的例子
│ │ │ ├── main.js
│ │ │ ├── window在屏幕之内.js
│ │ │ ├── 带属性的悬浮窗.js
│ │ │ └── view点击事件.js
│ │ ├── 按钮平分.js
│ │ ├── flash.js
│ │ ├── 悬浮窗日志.js
│ │ ├── 悬浮窗下拉框.js
│ │ ├── 焦点.js
│ │ ├── 悬浮窗脚本列表.js173.js
│ │ └── 悬浮时间268.js
│ ├── module.expo.pdf
│ ├── 111111111柴房
│ │ ├── yeah.png
│ │ ├── 微信赞赏码.png
│ │ ├── 支付宝收款码.jpg
│ │ └── 2222222.js
│ ├── 小游戏
│ │ └── 坦克大战游戏
│ │ │ ├── audio
│ │ │ ├── move.mp3
│ │ │ ├── prop.mp3
│ │ │ ├── attack.mp3
│ │ │ ├── start.mp3
│ │ │ ├── tankCrack.mp3
│ │ │ ├── bulletCrack.mp3
│ │ │ └── playerCrack.mp3
│ │ │ ├── images
│ │ │ ├── menu.gif
│ │ │ └── tankAll.gif
│ │ │ └── js
│ │ │ └── num.js
│ ├── 白酒煮饭
│ │ ├── [Http代理] 讯代理_优质代理.js
│ │ ├── 刷会撩更会聊QQ勋章.js
│ │ ├── 使用命令删除图片后,更新图库缓存.js
│ │ ├── 自动连接电脑vscode.js
│ │ ├── 自动加QQ好友.js
│ │ ├── 检测网络是否可用.js
│ │ ├── 打印当前页面 所有的 文字 和描.js
│ │ ├── 全局半透明背景.js
│ │ ├── 搜狗图床.js
│ │ ├── 查看wifi状态.js
│ │ ├── 改变字体颜色.js
│ │ ├── QQ清除好友聊天字体.js
│ │ ├── 每日一句(英文励志).js
│ │ ├── 朋友圈点赞.js
│ │ ├── QQ名片点赞脚本.js
│ │ ├── QQ加好友.js
│ │ ├── 查询本机IP地理位置.js
│ │ ├── [刷脸打卡]快速进入钉钉打卡界面.js
│ │ ├── 免费时间API.js
│ │ ├── 删除空白文件.js
│ │ ├── 双击返回退出的ui.js
│ │ ├── 九九乘法表.js
│ │ ├── 截图水印.js
│ │ ├── 百度翻译[中转英].js
│ │ ├── 只同时运行一个脚本.js
│ │ ├── 取关全部公众号.js
│ │ ├── 薅羊毛线报.js
│ │ ├── 支付宝帐单自动清理.js
│ │ ├── 百度文字识别(自动获取token).js
│ │ ├── 百度人脸识别.js
│ │ ├── 日期➕周数.js
│ │ └── [QQ] 为指定好用发送固定金额的红包..js
│ ├── http
│ │ ├── [Http代理] 讯代理_优质代理425.js
│ │ ├── httpBuild.js
│ │ ├── 1查询本机IP地理位置322.js
│ │ ├── http超时返回null.js
│ │ └── 格式化headers.js
│ ├── 动画
│ │ ├── surface(简单精灵动画)
│ │ │ └── 1122.png
│ │ └── 视觉干扰神器(记忆力增强).js
│ ├── intent
│ │ ├── 淘宝 内打开网页389.js
│ │ ├── 打开vpn.js
│ │ ├── 打开飞行模式设置界面.js
│ │ ├── 打开无障碍设置界面.js
│ │ ├── 启动脚本data.js
│ │ ├── 启动脚本autojsProIntent.js
│ │ ├── 打开关闭usb网络共享.js
│ │ ├── 启动脚本extras.js
│ │ ├── 发送广播.js
│ │ ├── 小米图库查看图片.js
│ │ ├── 语音识别.js
│ │ └── 提取广播数据.js
│ ├── 微信
│ │ └── root打开朋友圈.js
│ ├── 手机
│ │ ├── 横竖屏.js
│ │ ├── 判断屏幕是否锁定.js
│ │ ├── 查看wifi状态.js
│ │ ├── 播放系统提示音.js
│ │ ├── 获取手机桌面壁纸.js
│ │ ├── 高级输入法.js
│ │ ├── 无限震动.js
│ │ ├── 调整屏幕亮度.js
│ │ ├── callPhone.js
│ │ ├── 直接打开开发者模式.js
│ │ ├── 花500买的_联系人_短信_日历_通话记录
│ │ │ ├── 短信
│ │ │ │ ├── 发短信.js
│ │ │ │ ├── 收短信.js
│ │ │ │ └── 读短信.js
│ │ │ └── 通讯录增删改查
│ │ │ │ └── 读取通讯录.js
│ │ ├── 获取wifi信息.js
│ │ ├── 开发者选项-指针位置116.js
│ │ ├── 开发者选项指针位置.js
│ │ ├── 获取通讯录.js
│ │ ├── 铃声.js
│ │ ├── 全部短信获取144.js
│ │ └── 添加联系人.js
│ ├── 加密
│ │ ├── md5.js
│ │ └── autojs和nodejs的AES_CBC加解密Demo
│ │ │ └── nodejs_AES_CBC加解密.js
│ ├── app操作
│ │ ├── 获取app安装时间153.js
│ │ ├── 禁止联网133.js
│ │ ├── 打开app安装界面.js
│ │ ├── 获取指定应用的版本号.js
│ │ ├── 结束autojs自己.js
│ │ ├── 最新安装的app176.js
│ │ ├── 获取app图标1229.js
│ │ └── 强制更新.js
│ ├── 广播
│ │ ├── 发射广播362.js
│ │ └── 打印广播Intent信息232.js
│ ├── 数组
│ │ ├── 随机打乱数组顺序329.js
│ │ ├── 1求交集222.js
│ │ └── 大数组包含小数组.js
│ ├── events
│ │ ├── 气泡监听和移除.js
│ │ └── 按下键停止脚本运行252.js
│ ├── 显示消息
│ │ └── 改变toast位置.js
│ ├── 百度网盘
│ │ └── 百度网盘bsd获取199.js
│ ├── 字符串
│ │ └── 模板字符串.js
│ ├── 手势
│ │ ├── 心形手势.js
│ │ └── 小米锁屏解锁.js
│ ├── 时间
│ │ └── 实时显示脚本运行时长.js
│ ├── jar
│ │ └── 二维码识别.js
│ ├── 第三方API接口
│ │ ├── 语音识别177.js
│ │ ├── 百度AI开放平台人脸检测102.js
│ │ └── 百度文字识别140.js
│ ├── 养号
│ │ └── dy关注粉丝
│ │ │ └── Command.js
│ ├── 文件
│ │ └── 读写data目录.js
│ ├── README.md
│ └── 坐标
│ │ └── 两点之间的坐标.js
├── sample
│ ├── 协程
│ │ ├── 协程HelloWorld
│ │ │ ├── hello.txt
│ │ │ └── project.json
│ │ ├── .DS_Store
│ │ └── ui中使用协程
│ │ │ ├── project.json
│ │ │ └── main.js
│ ├── Shell命令
│ │ ├── 结束所有后台进程.js
│ │ ├── 锁屏.js
│ │ ├── 冻结网易云音乐.js
│ │ └── 解冻并打开网易云音乐.js
│ ├── 多线程
│ │ ├── 原子变量.js
│ │ ├── 变量可见性实验.js
│ │ ├── 线程启动与关闭.js
│ │ ├── 多线程按键监听.js
│ │ └── 多线程简单示例.js
│ ├── 脚本引擎
│ │ ├── 停止所有正在运行的脚本.js
│ │ ├── 运行新的脚本任务.js
│ │ ├── 运行录制文件.js
│ │ └── 运行脚本文件.js
│ ├── 应用
│ │ ├── 打开应用.js
│ │ ├── 强制停止应用.js
│ │ ├── 卸载应用.js
│ │ ├── 发送意图-文本消息分享.js
│ │ └── 应用工具.js
│ ├── .DS_Store
│ ├── 安卓7.0+点按和手势
│ │ ├── 点击左上角.js
│ │ ├── 拉出通知栏.js
│ │ ├── 双指捏合.js
│ │ ├── 三指捏合.js
│ │ ├── 三指下滑.js
│ │ └── 心形手势.js
│ ├── JavaScript
│ │ ├── HelloWorld.js
│ │ └── 数字.js
│ ├── 图片与图色处理
│ │ ├── 找图
│ │ │ ├── block.png
│ │ │ ├── mario.png
│ │ │ ├── super_mario.jpg
│ │ │ ├── 找出马里奥.js
│ │ │ ├── 找出所有问号方块.js
│ │ │ └── 找出问号方块并画出位置.js
│ │ ├── 截图并保存.js
│ │ ├── 获取网络图片并保存.js
│ │ ├── 实时显示触摸点颜色.js
│ │ ├── 模糊找色.js
│ │ ├── 找到QQ红点位置.js
│ │ ├── 精确找色.js
│ │ ├── 区域找色1.js
│ │ ├── 区域找色2.js
│ │ └── 颜色获取和检测.js
│ ├── 对话框
│ │ ├── 单选框.js
│ │ ├── 输入框.js
│ │ ├── 确认框.js
│ │ ├── 多选框.js
│ │ ├── 菜单.js
│ │ └── 简单计算器.js
│ ├── 定时器
│ │ ├── 循环执行.js
│ │ └── 定时执行.js
│ ├── 控制台
│ │ ├── 保存日志.js
│ │ ├── 调整控制台大小位置.js
│ │ ├── 格式化输出.js
│ │ ├── 终端模拟器.js
│ │ ├── 控制台示例.js
│ │ └── 产生随机数.js
│ ├── 悬浮窗
│ │ ├── 护眼模式.js
│ │ ├── 悬浮文字.js
│ │ ├── 悬浮窗运行脚本按钮简单版.js
│ │ ├── 悬浮窗输入框.js
│ │ └── 动态悬浮文字.js
│ ├── 文件读写
│ │ ├── 写入文本文件.js
│ │ ├── 读取文本文件.js
│ │ ├── 文件编码转换.js
│ │ ├── 文件编码转换(高级).js
│ │ ├── 删除所有空文件夹.js
│ │ └── 读写文本文件.js
│ ├── 事件与按键、触摸监听
│ │ ├── 触摸监听.js
│ │ ├── Toast监听.js
│ │ ├── 通知监听.js
│ │ ├── 长按返回退出当前程序.js
│ │ ├── 音量键控制程序.js
│ │ └── 按键监听.js
│ ├── HTTP网络请求
│ │ ├── 获取网页.js
│ │ └── 文件下载.js
│ ├── 本地存储
│ │ ├── 保存数组和复杂对象.js
│ │ ├── 保存整数等简单数据.js
│ │ └── 随手记.js
│ ├── 界面控件
│ │ ├── 自定义控件-使用配置勾选框.js
│ │ ├── 按钮控件.js
│ │ ├── 时间日期选择控件.js
│ │ ├── 复选框单选框控件.js
│ │ └── 下拉菜单.js
│ └── 设备与设备信息
│ │ ├── 获取设备信息.js
│ │ └── 调整设备亮度.js
├── .DS_Store
├── other
│ ├── 色卡.jpg
│ ├── 脚本作者.png
│ ├── 脚本作者New.png
│ └── ranyongJS-logoWhite.png
├── 完善脚本
│ └── .DS_Store
└── img
│ ├── image-20210306153008566.png
│ ├── image-20210308130921041.png
│ ├── image-20210308131054481.png
│ ├── image-20210308131151595.png
│ ├── image-20210308131235144.png
│ ├── image-20210308131348210.png
│ ├── image-20210308131809570.png
│ ├── image-20210308131854965.png
│ ├── image-20210308131933190.png
│ ├── image-20210308132019642.png
│ └── image-20210308132212171.png
├── .DS_Store
├── RanyongJs
└── .DS_Store
├── project.json
├── stopAll.js
└── 查询控件.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
--------------------------------------------------------------------------------
/.vscode/autojs.code-snippets:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/canvas/一直在跳的球255.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/获取手机粘贴板.js:
--------------------------------------------------------------------------------
1 | log(getClip())
2 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/ui启动ui-1.0.0.1/ui.js:
--------------------------------------------------------------------------------
1 | "ui";
--------------------------------------------------------------------------------
/乱七八糟/sample/协程/协程HelloWorld/hello.txt:
--------------------------------------------------------------------------------
1 | Nothing
--------------------------------------------------------------------------------
/乱七八糟/sample/Shell命令/结束所有后台进程.js:
--------------------------------------------------------------------------------
1 | shell("am kill-all", true);
--------------------------------------------------------------------------------
/乱七八糟/sample/多线程/原子变量.js:
--------------------------------------------------------------------------------
1 | var i = threads.atomic();
2 |
--------------------------------------------------------------------------------
/乱七八糟/sample/脚本引擎/停止所有正在运行的脚本.js:
--------------------------------------------------------------------------------
1 | engines.stopAllAndToast();
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本排队/1.js:
--------------------------------------------------------------------------------
1 | sleep(3000)
2 | log('我是 1 号脚本')
3 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本排队/3.js:
--------------------------------------------------------------------------------
1 | sleep(2000)
2 | log('我是 3 号脚本')
3 |
--------------------------------------------------------------------------------
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本排队/2.js:
--------------------------------------------------------------------------------
1 | sleep(1000)
2 |
3 | log('我是 2 号脚本')
4 |
--------------------------------------------------------------------------------
/乱七八糟/sample/Shell命令/锁屏.js:
--------------------------------------------------------------------------------
1 | KeyCode("KEYCODE_POWER");
2 | //或者 KeyCode(26);
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本通信/broadcast通信/后发送.js:
--------------------------------------------------------------------------------
1 | events.broadcast.emit('hello','小明')
2 |
--------------------------------------------------------------------------------
/乱七八糟/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/抓取logcat日志453.js:
--------------------------------------------------------------------------------
1 | new Shell().exec("logcat -f /sdcard/脚本/log.txt");
--------------------------------------------------------------------------------
/乱七八糟/Demo/电脑知识点/win7结束任务.txt:
--------------------------------------------------------------------------------
1 | tasklist
2 |
3 | Taskkill/im Pasteasy.exe /f
4 |
--------------------------------------------------------------------------------
/乱七八糟/sample/Shell命令/冻结网易云音乐.js:
--------------------------------------------------------------------------------
1 | shell("pm disable com.netease.cloudmusic", true);
--------------------------------------------------------------------------------
/乱七八糟/sample/应用/打开应用.js:
--------------------------------------------------------------------------------
1 | var appName = rawInput("请输入应用名称");
2 | launchApp(appName);
--------------------------------------------------------------------------------
/乱七八糟/other/色卡.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/other/色卡.jpg
--------------------------------------------------------------------------------
/RanyongJs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/RanyongJs/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/other/脚本作者.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/other/脚本作者.png
--------------------------------------------------------------------------------
/乱七八糟/完善脚本/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/完善脚本/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/UI/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/工具箱/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/悬浮窗/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/other/脚本作者New.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/other/脚本作者New.png
--------------------------------------------------------------------------------
/乱七八糟/sample/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/sample/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/手勢模塊/44.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/UI/手勢模塊/44.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/module.expo.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/module.expo.pdf
--------------------------------------------------------------------------------
/乱七八糟/sample/协程/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/sample/协程/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/pro商店的脚本/.DS_Store
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/二维码/二维码识别.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/工具箱/二维码/二维码识别.dex
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本通信/脚本结束事件.js:
--------------------------------------------------------------------------------
1 | events.on('exit', function () {
2 | log('我运行完了')
3 | })
4 | log(1)
5 |
--------------------------------------------------------------------------------
/乱七八糟/sample/Shell命令/解冻并打开网易云音乐.js:
--------------------------------------------------------------------------------
1 | shell("pm enable com.netease.cloudmusic", true);
2 | launchApp("网易云音乐");
--------------------------------------------------------------------------------
/乱七八糟/sample/安卓7.0+点按和手势/点击左上角.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | setScreenMetrics(1080, 1920);
4 |
5 | click(100, 150);
--------------------------------------------------------------------------------
/乱七八糟/Demo/111111111柴房/yeah.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/111111111柴房/yeah.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本排队第二种/2.js:
--------------------------------------------------------------------------------
1 | for(var i=0;i<3;i++){
2 | toastLog('this is 2.js '+ i)
3 | sleep(1000)
4 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本排队第二种/3.js:
--------------------------------------------------------------------------------
1 | for(var i=0;i<3;i++){
2 | toastLog('this is 3.js '+ i)
3 | sleep(1000)
4 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/JavaScript/HelloWorld.js:
--------------------------------------------------------------------------------
1 | log("Hello world!!!");
2 | toast("Hello, AutoJs!");
3 | console.show();
--------------------------------------------------------------------------------
/乱七八糟/Demo/111111111柴房/微信赞赏码.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/111111111柴房/微信赞赏码.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/111111111柴房/支付宝收款码.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/111111111柴房/支付宝收款码.jpg
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/在别的脚本中获取ui的控件属性/获取ui模块中按钮的文本.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | var ui的引用=require('./ui模块.js')
3 | log(ui的引用.text())
4 |
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/找图/block.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/sample/图片与图色处理/找图/block.png
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/找图/mario.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/sample/图片与图色处理/找图/mario.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/audio/move.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/audio/move.mp3
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/audio/prop.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/audio/prop.mp3
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/[Http代理] 讯代理_优质代理.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/白酒煮饭/[Http代理] 讯代理_优质代理.js
--------------------------------------------------------------------------------
/乱七八糟/other/ranyongJS-logoWhite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/other/ranyongJS-logoWhite.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/http/[Http代理] 讯代理_优质代理425.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/http/[Http代理] 讯代理_优质代理425.js
--------------------------------------------------------------------------------
/乱七八糟/Demo/动画/surface(简单精灵动画)/1122.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/动画/surface(简单精灵动画)/1122.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/audio/attack.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/audio/attack.mp3
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/audio/start.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/audio/start.mp3
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/images/menu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/images/menu.gif
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210306153008566.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210306153008566.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308130921041.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308130921041.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308131054481.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308131054481.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308131151595.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308131151595.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308131235144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308131235144.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308131348210.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308131348210.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308131809570.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308131809570.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308131854965.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308131854965.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308131933190.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308131933190.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308132019642.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308132019642.png
--------------------------------------------------------------------------------
/乱七八糟/img/image-20210308132212171.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/img/image-20210308132212171.png
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/找图/super_mario.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/sample/图片与图色处理/找图/super_mario.jpg
--------------------------------------------------------------------------------
/乱七八糟/sample/安卓7.0+点按和手势/拉出通知栏.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | //表示从位置(500, 10)滑动到位置(500, 1000), 持续两秒
4 | swipe(500, 10, 500, 1000, 2000);
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/audio/tankCrack.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/audio/tankCrack.mp3
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/images/tankAll.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/images/tankAll.gif
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/淘宝 内打开网页389.js:
--------------------------------------------------------------------------------
1 | app.startActivity({
2 | action: "android.intent.action.VIEW",
3 | data: "taobao://hitow.net"
4 | });
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/audio/bulletCrack.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/audio/bulletCrack.mp3
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/audio/playerCrack.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/小游戏/坦克大战游戏/audio/playerCrack.mp3
--------------------------------------------------------------------------------
/乱七八糟/sample/对话框/单选框.js:
--------------------------------------------------------------------------------
1 | var sex = dialogs.singleChoice("请选择性别", ["男", "女", "基佬", "女装", "其他"], 2);
2 | toast("选择了第" + (sex + 1) + "个选项");
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/一开始不要显示输入法.js:
--------------------------------------------------------------------------------
1 | activity.getWindow().setSoftInputMode(android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
2 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/打开vpn.js:
--------------------------------------------------------------------------------
1 | var intent=new Intent()
2 | intent.setAction("android.settings.VPN_SETTINGS")
3 | app.startActivity(intent)
4 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/二维码自定义生成-1.0.0.1/res/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/pro商店的脚本/二维码自定义生成-1.0.0.1/res/logo.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/亲戚关系计算器-1.0.0.1/res/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/pro商店的脚本/亲戚关系计算器-1.0.0.1/res/logo.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/悬浮教程文档-1.0.0.1/res/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/pro商店的脚本/悬浮教程文档-1.0.0.1/res/logo.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本通信/engines通信/2.js:
--------------------------------------------------------------------------------
1 | var args=engines.myEngine().execArgv;
2 | log('2号脚本打印开始')
3 | log(args)
4 | log(args.大明星)
5 | log('2号脚本打印结束')
6 |
--------------------------------------------------------------------------------
/乱七八糟/sample/JavaScript/数字.js:
--------------------------------------------------------------------------------
1 | a = 5;
2 | b = 6;
3 | c = -1;
4 | x = 1.5;
5 | y = a * x * x + b * x * c;
6 | log("y = " + y);
7 | openConsole();
8 |
--------------------------------------------------------------------------------
/乱七八糟/sample/应用/强制停止应用.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | var appName = rawInput("请输入应用名称");
4 | openAppSetting(getPackageName(appName));
5 | while(!click("强制停止"));
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/打开飞行模式设置界面.js:
--------------------------------------------------------------------------------
1 | var intent=new Intent()
2 | intent.setAction("android.settings.AIRPLANE_MODE_SETTINGS")
3 | app.startActivity(intent)
4 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本通信/broadcast通信/先监听.js:
--------------------------------------------------------------------------------
1 |
2 | events.broadcast.on('hello',function(name){
3 | toastLog('你好'+name)
4 | })
5 | setInterval(()=>{},3000)
6 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/数组填充.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本引擎实现顺序执行/脚本1.js:
--------------------------------------------------------------------------------
1 | for(var i=0;i<6;i++){
2 | log("这里是脚本1 loop"+i);
3 | sleep(200);
4 | }
5 | mainEngine.emit("control",index);
6 |
7 |
8 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本引擎实现顺序执行/脚本2.js:
--------------------------------------------------------------------------------
1 | for(var i=0;i<6;i++){
2 | log("这里是脚本2 loop"+i);
3 | sleep(200);
4 | }
5 | mainEngine.emit("control",index);
6 |
7 |
8 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本引擎实现顺序执行/脚本3.js:
--------------------------------------------------------------------------------
1 | for(var i=0;i<6;i++){
2 | log("这里是脚本3 loop"+i);
3 | sleep(200);
4 | }
5 | mainEngine.emit("control",index);
6 |
7 |
8 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/打开无障碍设置界面.js:
--------------------------------------------------------------------------------
1 | var intent = new Intent();
2 | intent.setAction("android.settings.ACCESSIBILITY_SETTINGS"); //打开无障碍设置界面
3 | app.startActivity(intent);
4 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本通信/engines通信/1.js:
--------------------------------------------------------------------------------
1 | // 这是启动方式为脚本引擎的通信方式
2 | var 大明星='周杰伦'
3 | engines.execScriptFile('./2.js',{
4 | arguments:{
5 | 大明星:大明星
6 | }
7 | })
8 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/微信/root打开朋友圈.js:
--------------------------------------------------------------------------------
1 | //要root才能打开朋友圈
2 | var activity = "com.tencent.mm/com.tencent.mm.plugin.sns.ui.SnsTimeLineUI"
3 | shell("am start -n " + activity, true);
4 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/刷会撩更会聊QQ勋章.js:
--------------------------------------------------------------------------------
1 | auto("");
2 | toast("请打开一个聊天窗口");
3 | for(var i = 1; i <= 6666; i++){
4 | setText("运气王 发");
5 | click("发送");
6 | sleep(100); }
--------------------------------------------------------------------------------
/乱七八糟/sample/对话框/输入框.js:
--------------------------------------------------------------------------------
1 | var name = rawInput("请输入名字");
2 | alert("(•́へ•́╬)", "你好~ " + name);
3 | var expr = dialogs.input("请输入简单的算式", "1+1");
4 | alert("计算结果为 " + expr);
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/一般常用函数模块-1.0.15.1015/lib/RootTools-3.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/pro商店的脚本/一般常用函数模块-1.0.15.1015/lib/RootTools-3.4.jar
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/更新UI悬浮窗样例-1.0.0.1/res/img/download_bg-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RanY-Luck/AutoJS/HEAD/乱七八糟/Demo/pro商店的脚本/更新UI悬浮窗样例-1.0.0.1/res/img/download_bg-1.png
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/使用命令删除图片后,更新图库缓存.js:
--------------------------------------------------------------------------------
1 | var f = '/sdcard/img/1.png';
2 | app.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,android.net.Uri.fromFile(java.io.File(f))));
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/截图并保存.js:
--------------------------------------------------------------------------------
1 | if(!requestScreenCapture()){
2 | toast("请求截图失败");
3 | exit();
4 | }
5 | var img = captureScreen();
6 | images.saveImage(img, "/sdcard/1.png");
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本通信/ScriptEngine_emit通信/1.js:
--------------------------------------------------------------------------------
1 | //运行脚本
2 | var e = engines.execScriptFile("./2.js");
3 | //等待脚本启动
4 | sleep(2000);
5 | //向该脚本发送事件
6 | e.getEngine().emit("say", "你好");
7 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/横竖屏.js:
--------------------------------------------------------------------------------
1 | //1竖屏 2横屏
2 |
3 | function getScreenDirection() {
4 | importPackage(android.content);
5 | return context.getResources().getConfiguration().orientation;
6 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/加密/md5.js:
--------------------------------------------------------------------------------
1 | function md5(string) {
2 | return java.math.BigInteger(1,java.security.MessageDigest.getInstance("MD5")
3 | .digest(java.lang.String(string).getBytes())).toString(16);
4 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/定时器/循环执行.js:
--------------------------------------------------------------------------------
1 | var i = 0;
2 |
3 | setInterval(function(){
4 | i++;
5 | toast(i * 4 + "秒");
6 | if(i == 5){
7 | exit();
8 | }
9 | }, 4000);
10 |
11 |
--------------------------------------------------------------------------------
/乱七八糟/sample/控制台/保存日志.js:
--------------------------------------------------------------------------------
1 | console.setGlobalLogConfig({
2 | file: "/sdcard/log.txt"
3 | });
4 | console.log(1);
5 | console.log(2);
6 | console.error(3);
7 | app.viewFile("/sdcard/log.txt");
8 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/在别的脚本中获取ui的控件属性/ui模块.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 | module.exports=ui.myButton
8 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/一个字一个字输入:
--------------------------------------------------------------------------------
1 | var str='你好 这是一段测试代码'
2 | var strArray=str.split("")
3 | for(var i=0;i{}, 1000);
9 |
--------------------------------------------------------------------------------
/乱七八糟/sample/控制台/调整控制台大小位置.js:
--------------------------------------------------------------------------------
1 | console.show();
2 | console.log("调整大小...");
3 | console.setSize(1000, 1000);
4 | sleep(2000);
5 | console.log("调整位置...");
6 | console.setPosition(0, 500);
7 | sleep(2000);
8 | console.hide();
9 |
--------------------------------------------------------------------------------
/乱七八糟/sample/悬浮窗/护眼模式.js:
--------------------------------------------------------------------------------
1 | var w = floaty.rawWindow(
2 |
3 | );
4 |
5 | w.setSize(-1, -1);
6 | w.setTouchable(false);
7 |
8 | setTimeout(()=>{
9 | w.close();
10 | }, 60000);
--------------------------------------------------------------------------------
/乱七八糟/sample/安卓7.0+点按和手势/双指捏合.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]]);
--------------------------------------------------------------------------------
/乱七八糟/sample/文件读写/写入文本文件.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();
--------------------------------------------------------------------------------
/乱七八糟/sample/事件与按键、触摸监听/触摸监听.js:
--------------------------------------------------------------------------------
1 |
2 | events.observeTouch();
3 |
4 | events.setTouchEventTimeout(30);
5 |
6 | toast("请在日志中查看触摸的点的坐标");
7 |
8 | events.on("touch", function(point){
9 | log(point);
10 | });
11 |
12 | loop();
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/获取网络图片并保存.js:
--------------------------------------------------------------------------------
1 | //这个是Auto.js图标的地址
2 | var url = "https://www.autojs.org/assets/uploads/profile/3-profileavatar.png";
3 | var logo = images.load(url);
4 | //保存到路径/sdcard/auto.js.png
5 | images.save(logo, "/sdcard/auto.js.png");
--------------------------------------------------------------------------------
/乱七八糟/sample/文件读写/读取文本文件.js:
--------------------------------------------------------------------------------
1 | //文件路径
2 | var path = "/sdcard/1.txt";
3 | //打开文件
4 | var file = open(path);
5 | //读取文件的所有内容
6 | var text = file.read();
7 | //打印到控制台
8 | print(text);
9 | //关闭文件
10 | file.close();
11 | console.show();
--------------------------------------------------------------------------------
/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ranyongjs",
3 | "main": "main.js",
4 | "ignore": [
5 | "build"
6 | ],
7 | "packageName": "com.ranyong.ranyongjs",
8 | "versionName": "1.0.1",
9 | "versionCode": 1
10 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/app操作/禁止联网133.js:
--------------------------------------------------------------------------------
1 |
2 | uid=`cat /data/system/packages.list | grep com.sohu.inputmethod.sogou | busybox awk '{print $2}'`
3 | iptables -t filter -A OUTPUT -m owner --uid-owner=$uid -j DROP
4 |
5 | 以上是android iptables 屏蔽某个app网络访问的内容,
6 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/启动脚本data.js:
--------------------------------------------------------------------------------
1 | app.startActivity({
2 | packageName : "org.autojs.autojs",
3 | className : "org.autojs.autojs.external.open.RunIntentActivity",
4 | data : "/sdcard/脚本/2.js",
5 | type : "application/x-javascript"
6 | });
7 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/悬浮窗单位px.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 |
8 |
9 | log(context.getResources().getDisplayMetrics().density)
10 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/自动连接电脑vscode.js:
--------------------------------------------------------------------------------
1 | app.startActivity({
2 | packageName : "org.autojs.autojs",
3 | className : "org.autojs.autojs.external.open.RunIntentActivity",
4 | data : "/sdcard/脚本/翻译.js",
5 | type : "application/x-javascript"
6 | });
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/找图/找出马里奥.js:
--------------------------------------------------------------------------------
1 |
2 | var superMario = images.read("./super_mario.jpg");
3 | var mario = images.read("./mario.png");
4 | var point = findImage(superMario, mario);
5 | toastLog(point);
6 |
7 | superMario.recycle();
8 | mario.recycle();
--------------------------------------------------------------------------------
/乱七八糟/sample/脚本引擎/运行新的脚本任务.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();
--------------------------------------------------------------------------------
/乱七八糟/sample/HTTP网络请求/获取网页.js:
--------------------------------------------------------------------------------
1 | var url = "www.baidu.com";
2 | var res = http.get(url);
3 | if(res.statusCode == 200){
4 | toast("请求成功");
5 | console.show();
6 | log(res.body.string());
7 | }else{
8 | toast("请求失败:" + res.statusMessage);
9 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/控制台/格式化输出.js:
--------------------------------------------------------------------------------
1 | console.show();
2 |
3 | var i = {
4 | name: "小明",
5 | age: 18,
6 | height: 1.72
7 | };
8 |
9 | console.log("大家好, 我叫%s, 今年%d岁, 身高%d米", i.name, i.age, i.height);
10 | console.log("实际上我是一个对象啦,长这样子: %j", i);
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/启动脚本autojsProIntent.js:
--------------------------------------------------------------------------------
1 | app.startActivity({
2 | packageName : "org.autojs.autojspro",
3 | className : "org.autojs.autojs.external.open.RunIntentActivity",
4 | data : "/sdcard/脚本/2.js",
5 | type : "application/x-javascript"
6 | });
7 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/自动加QQ好友.js:
--------------------------------------------------------------------------------
1 | path="/storage/emulated/0/脚本/qq号.txt";
2 | file = open(path, "r")
3 | for(i0=0;i0
3 |
4 |
5 | );
6 |
7 | w.setTouchable(false);
8 |
9 | setTimeout(()=>{
10 | w.close();
11 | }, 360000);
12 | //720*1280分辨率显示正常
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/全局半透明背景.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分辨率显示正常
--------------------------------------------------------------------------------
/乱七八糟/sample/定时器/定时执行.js:
--------------------------------------------------------------------------------
1 | toast("静等20秒,你会看到想看的...");
2 |
3 | var i = 0;
4 |
5 | setTimeout(function(){
6 | app.openUrl("http://music.163.com/#/song?id=109628&autoplay=true&market=baiduhd");
7 | exit();
8 | }, 20 * 1000);
9 |
10 | setInterval(function(){
11 | i++;
12 | toast(i * 5 + "秒");
13 | }, 5000);
14 |
15 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/图片圆角.js:
--------------------------------------------------------------------------------
1 | w=floaty.window(
2 |
3 | )
4 | w.图片.click(function () {
5 | w.图片.attr("w", "100"); //图片显示不正常
6 | w.图片.attr("cornerRadius", "30"); //没反应
7 | w.图片.invalidate()
8 | });
9 | setInterval(
10 | () => {}, 1000
11 | )
12 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/app操作/获取指定应用的版本号.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 获取指定应用的版本号
3 | * @param {string} packageName 应用包名
4 | */
5 | function getPackageVersion(packageName) {
6 | importPackage(android.content);
7 | var pckMan = context.getPackageManager();
8 | var packageInfo = pckMan.getPackageInfo(packageName, 0);
9 | return packageInfo.versionName;
10 | }
11 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/搜狗图床.js:
--------------------------------------------------------------------------------
1 | function 上传图片(path){
2 | var url="http://pic.sogou.com/pic/upload_pic.jsp";
3 | var res=http.postMultipart(url,{
4 | "file": open(path),
5 | });
6 | var t=res.body.string();
7 | return t;
8 | }
9 | path="/storage/emulated/0/BDY_DOWNLOAD/1.驱动&程序_69ac5/1.驱动&程序/122U操作图解说明/1操作说明(第一页).jpg";
10 | log(上传图片(path));
11 |
12 |
--------------------------------------------------------------------------------
/乱七八糟/sample/悬浮窗/悬浮文字.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 | );
6 |
7 | window.exitOnClose();
8 |
9 | window.text.click(()=>{
10 | window.setAdjustEnabled(!window.isAdjustEnabled());
11 | });
12 |
13 | setInterval(()=>{}, 1000);
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/查看wifi状态.js:
--------------------------------------------------------------------------------
1 | importPackage(android.content);
2 | let wifiManager = context.getSystemService(Context.WIFI_SERVICE);
3 | getCurrentWifiStateState(wifiManager)
4 | function getCurrentWifiStateState(wifiManager) {
5 | if (wifiManager.isWifiEnabled()){
6 | alert('打开状态')
7 | }else{
8 | alert('关闭状态')
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/播放系统提示音.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 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/查看wifi状态.js:
--------------------------------------------------------------------------------
1 | importPackage(android.content);
2 | let wifiManager = context.getSystemService(Context.WIFI_SERVICE);
3 | getCurrentWifiStateState(wifiManager)
4 | function getCurrentWifiStateState(wifiManager) {
5 | if (wifiManager.isWifiEnabled()){
6 | alert('打开状态')
7 | }else{
8 | alert('关闭状态')
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/乱七八糟/sample/安卓7.0+点按和手势/三指下滑.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 |
--------------------------------------------------------------------------------
/乱七八糟/sample/应用/发送意图-文本消息分享.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 | });
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/获取手机桌面壁纸.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | importClass(android.app.WallpaperManager)
3 |
4 | ui.layout(
5 |
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 | });
15 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/高级输入法.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 | };
12 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/数组/随机打乱数组顺序329.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/改变字体颜色.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 |
7 | );
8 |
9 | ui.click_me.on("click", ()=>{
10 | toastLog(colors.parseColor("#00FF00"));
11 | ui.id.setTextColor(-16711936);
12 | });
--------------------------------------------------------------------------------
/乱七八糟/sample/对话框/菜单.js:
--------------------------------------------------------------------------------
1 | while(true){
2 | var i = dialogs.select("哲学的基本问题是", "社会和自然的关系问题", "思维与存在的关系问题", "政治和经济的关系问题", "实践和理论的关系问题");
3 | if(i == -1){
4 | toast("猜一下呗");
5 | continue;
6 | }
7 | if(i == 1){
8 | toast("答对辣");
9 | break;
10 | }else{
11 | toast("答错辣")
12 | }
13 | }
14 |
15 |
16 |
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/模糊找色.js:
--------------------------------------------------------------------------------
1 | if(!requestScreenCapture()){
2 | toast("请求截图失败");
3 | exit();
4 | }
5 | var img = captureScreen();
6 | //0x9966ff为编辑器紫色字体的颜色
7 | toastLog("开始找色");
8 | var point = findColor(img, 0x9966ff);
9 | if(point){
10 | toastLog("x = " + point.x + ", y = " + point.y);
11 | }else{
12 | toastLog("没有找到");
13 | }
14 |
15 |
16 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/无限震动.js:
--------------------------------------------------------------------------------
1 | importClass(android.os.Vibrator);
2 | importPackage(android.content)
3 | var vibrator = context.getSystemService(Context.VIBRATOR_SERVICE);
4 | // log(vibrator.vibrate.toString())
5 | log('开始震动')
6 | vibrator.vibrate([1,1000000000], 0);
7 | setTimeout(
8 | function(){
9 | vibrator.cancel();
10 | log('结束震动')
11 | },1000*60
12 | )
13 |
--------------------------------------------------------------------------------
/乱七八糟/sample/本地存储/保存数组和复杂对象.js:
--------------------------------------------------------------------------------
1 | var storage = storages.create("Auto.js例子:复杂数据");
2 | var arr = [1, 4, 2, 5];
3 | var obj = {
4 | name: "Auto.js",
5 | url: "www.autojs.org"
6 | };
7 | //保存
8 | storage.put("arr", arr);
9 | storage.put("obj", obj);
10 |
11 | console.show();
12 | //取出
13 | log("arr = ", storage.get("arr"));
14 | log("obj = ", storage.get("obj"));
15 |
--------------------------------------------------------------------------------
/乱七八糟/sample/本地存储/保存整数等简单数据.js:
--------------------------------------------------------------------------------
1 | var storage = storages.create("Auto.js例子:简单数据");
2 | var a = 1234;
3 | var b = true;
4 | var str = "hello";
5 | //保存
6 | storage.put("a", a);
7 | storage.put("b", b);
8 | storage.put("str", str);
9 |
10 | console.show();
11 | //取出
12 | log("a = " + storage.get("a"));
13 | log("b = " + storage.get("b"));
14 | log("str = " + storage.get("str"));
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/按钮平分.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | ui.layout(
3 |
4 |
5 |
6 |
7 |
8 |
9 | )
10 |
11 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/文件选择对话框-1.0.1.2/main.js:
--------------------------------------------------------------------------------
1 | let FileChooserDialog = require("./file_chooser_dialog");
2 | FileChooserDialog.build({
3 | title: '请选择目标文件',
4 | // 初始文件夹路径
5 | dir: "/sdcard/脚本",
6 | // 可选择的类型,file为文件,dir为文件夹
7 | canChoose: ["file"],
8 | // 选择文件后的回调
9 | fileCallback: (file) => {
10 | toast(file);
11 | }
12 | })
13 | .show();
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/找到QQ红点位置.js:
--------------------------------------------------------------------------------
1 | if(!requestScreenCapture()){
2 | toast("请求截图失败");
3 | exit();
4 | }
5 | launchApp("QQ");
6 | sleep(2000);
7 | var img = captureScreen();
8 | toastLog("开始找色");
9 | var point = findColor(img, "#f64d30");
10 | if(point){
11 | toastLog("x = " + point.x + ", y = " + point.y);
12 | }else{
13 | toastLog("没有找到");
14 | }
15 |
16 |
17 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/调整屏幕亮度.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 作者: ProjectXero
3 | * 功能: 调整屏幕亮度
4 | * 备注: screenBrightness=0 0最暗 1最亮
5 | */
6 |
7 | var w = floaty.rawWindow(
8 |
9 | );
10 | w.setSize(-1, -1);
11 | w.setTouchable(false);
12 | log(w.main.getRootView().getLayoutParams().screenBrightness=0);
13 | setTimeout(()=>{ w.close(); }, 4000);
14 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/webViewClient的用法.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 | var client = android.webkit.WebViewClient;
8 | var t = new JavaAdapter(client, {
9 | onPageFinished: function (view, url) {
10 | toast("哈哈")
11 | }
12 | })
13 | ui.web.setWebViewClient(t);
14 | ui.web.loadUrl("https://baidu.com")
15 | toastLog(typeof (t));
16 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/显示网页.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 | 在界面加载一个网页
8 |
9 |
10 |
11 |
12 | )
13 |
14 | ui.webview.loadUrl("http://baidu.com/");
15 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/shell开关飞行模式135.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 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/精确找色.js:
--------------------------------------------------------------------------------
1 | if(!requestScreenCapture()){
2 | toast("请求截图失败");
3 | stop();
4 | }
5 | var img = captureScreen();
6 | toastLog("开始找色");
7 | //0x1d75b3为编辑器默认主题蓝色字体(if, var等关键字)的颜色
8 | //找到颜色与0x1d75b3完全相等的颜色
9 | var point = findColorEquals(img, 0x006699);
10 | if(point){
11 | toastLog("x = " + point.x + ", y = " + point.y);
12 | }else{
13 | toastLog("没有找到");
14 | }
15 |
16 |
17 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/callPhone.js:
--------------------------------------------------------------------------------
1 | // 加入下面的权限才能打电话或者pro版的Auto.js;网上的不论是java的代码还是shell的代码能直接打电话的只有它最好。
2 | //
3 | app.startActivity({
4 | action:"CALL",
5 | data: "tel:10010"
6 | });
7 |
8 |
9 | /*var intent1=app.intent({
10 | action:"intent.ACTION_CALL",
11 | data: "tel:10010"
12 | })
13 | app.startActivity(intent1);
14 |
15 | */
16 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/UI和悬浮窗一起使用的完整栗子/window在屏幕之内.js:
--------------------------------------------------------------------------------
1 | function window在屏幕之内(window){
2 | var x=window.getX()
3 | var y=window.getY()
4 | var w=window.getWidth()
5 | var h=window.getHeight()
6 | var centerX=x+w/2
7 | var centerY=y+h/2
8 | if(centerX>0 && centerX0 && centerY
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 | })
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/悬浮窗和UI一起使用的例子/window在屏幕之内.js:
--------------------------------------------------------------------------------
1 | function window在屏幕之内(window){
2 | var x=window.getX()
3 | var y=window.getY()
4 | var w=window.getWidth()
5 | var h=window.getHeight()
6 | var centerX=x+w/2
7 | var centerY=y+h/2
8 | if(centerX>0 && centerX0 && centerY0 && centerX0 && centerY
4 |
5 |
6 |
7 |
8 |
9 | )
10 | setInterval(()=>{},3000)
11 |
12 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/UI和悬浮窗一起使用的完整栗子/window在屏幕之内.js:
--------------------------------------------------------------------------------
1 | function window在屏幕之内(window){
2 | var x=window.getX()
3 | var y=window.getY()
4 | var w=window.getWidth()
5 | var h=window.getHeight()
6 | var centerX=x+w/2
7 | var centerY=y+h/2
8 | if(centerX>0 && centerX0 && centerY
9 |
10 | );
11 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/小米图库查看图片.js:
--------------------------------------------------------------------------------
1 | app.startActivity({
2 | action: "android.intent.action.VIEW",
3 | packageName: "com.miui.gallery",
4 | className: "com.miui.gallery.activity.ExternalPhotoPageActivity",
5 | data: app.parseUri("file:///storage/emulated/0/DCIM/Screenshots/Screenshot_2019-04-10-10-33-44-041_org.autojs.autojspro.png"),
6 | type: "image/png",
7 | flags: ["grant_read_uri_permission","grant_write_uri_permission"],
8 | });
9 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/QQ清除好友聊天字体.js:
--------------------------------------------------------------------------------
1 | var info = "sdcard/tencent/MobileQQ/.font_info"
2 | if (confirm("是否将所有好友的字体恢复系统默认?")) {
3 |
4 |
5 | if (files.exists(info)) {
6 | files.removeDir(info);
7 | files.createIfNotExists(info);
8 | toastLog("请刷新QQ查看");
9 |
10 | } else {
11 | toastLog("字体文件不存在");
12 | exit();
13 | }
14 | } else {
15 | exit();
16 | //在这里更新恢复正常字体功能
17 |
18 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/events/按下键停止脚本运行252.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 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/Uiobject节点的智能提示(包含文档中没有的api)-1.0.0.1/main.js:
--------------------------------------------------------------------------------
1 | //示列
2 | var uinode = require("./UiNode").UiNode;
3 |
4 | var obj = text("Auto.js Pro").findOne(200);
5 |
6 | if(obj!=null){
7 | var node = uinode.create(obj);
8 |
9 | //获得节点文本
10 | print(node.text)
11 |
12 | //控件是否可见
13 | print(node.visibleToUser);
14 |
15 | //节点的方法,获取控件的宽高
16 | print(node.method.bounds());
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/随机颜色.js:
--------------------------------------------------------------------------------
1 | function getRndColor() {
2 | var a, r, g, b;
3 | a = Math.floor(0), r = Math.floor(随机0_255()), g = Math.floor(随机0_255()), b = Math.floor(随机0_255());
4 | // var 反色 = -1 - colors.argb(0, r, g, b);
5 | var color = colors.argb(0, r, g, b);
6 | color = colors.toString(color)
7 | log(color)
8 | return color
9 | }
10 | function 随机0_255() {
11 | var r = parseInt(255 * Math.random())
12 | return r
13 | }
14 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/canvas/图片加文字383.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();
--------------------------------------------------------------------------------
/乱七八糟/Demo/canvas/图片加水印.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();
14 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/改变toast位置120.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/显示消息/改变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('sdfsfdsdfs',300,300)
14 | sleep(2000)
15 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/每日一句(英文励志).js:
--------------------------------------------------------------------------------
1 | var res = http.post("http://route.showapi.com/1211-1", {
2 | headers: {
3 | 'Content-Type': 'application/x-www-form-urlencoded'
4 | },
5 | "showapi_appid": '79304',
6 | "showapi_sign": 'dc57036459004b369823957c97e01f14',
7 | "count": "10"
8 | });
9 | var html = res.body.json().showapi_res_body.data;
10 | for (let i in html){
11 | log(html[i].english + "\n" + html[i].chinese+"\n\n");
12 | };
--------------------------------------------------------------------------------
/乱七八糟/sample/脚本引擎/运行录制文件.js:
--------------------------------------------------------------------------------
1 |
2 | var scriptsPath = "/sdcard/脚本/";
3 | if(!files.exists(scriptsPath)){
4 | scriptsPath = "/sdcard/Scripts/";
5 | }
6 | var scriptFiles = files.listDir(scriptsPath, function(name){
7 | return name.endsWith(".auto");
8 | });
9 | var i = dialogs.singleChoice("请选择要运行的脚本", scriptFiles);
10 | if(i < 0){
11 | exit();
12 | }
13 | var path = files.join(scriptsPath, scriptFiles[i]);
14 | engines.execAutoFile(path);
--------------------------------------------------------------------------------
/乱七八糟/sample/脚本引擎/运行脚本文件.js:
--------------------------------------------------------------------------------
1 |
2 | var scriptsPath = "/sdcard/脚本/";
3 | if(!files.exists(scriptsPath)){
4 | scriptsPath = "/sdcard/Scripts/";
5 | }
6 | var scriptFiles = files.listDir(scriptsPath, function(name){
7 | return name.endsWith(".js");
8 | });
9 | var i = dialogs.singleChoice("请选择要运行的脚本", scriptFiles);
10 | if(i < 0){
11 | exit();
12 | }
13 | var path = files.join(scriptsPath, scriptFiles[i]);
14 | engines.execScriptFile(path);
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/朋友圈点赞.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 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/百度网盘/百度网盘bsd获取199.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/脚本引擎实现顺序执行-1.0.0.1/脚本1.js:
--------------------------------------------------------------------------------
1 | var mainEngine;
2 | var index;
3 |
4 | var ii=setInterval(()=>{},1000)
5 | events.on("prepare",function(i,obj){
6 | mainEngine=obj;
7 | index=i;
8 | main();
9 | clearInterval(ii);
10 | });
11 |
12 |
13 | //执行逻辑
14 | function main(){
15 | for(var i=0;i<8;i++){
16 | log("这里是脚本1 loop"+i);
17 | sleep(100);
18 | }
19 | mainEngine.emit("control",index);
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/脚本引擎实现顺序执行-1.0.0.1/脚本2.js:
--------------------------------------------------------------------------------
1 | var mainEngine;
2 | var index;
3 |
4 | var ii=setInterval(()=>{},1000)
5 | events.on("prepare",function(i,obj){
6 | mainEngine=obj;
7 | index=i;
8 | main();
9 | clearInterval(ii);
10 | });
11 |
12 |
13 | //执行逻辑
14 | function main(){
15 | for(var i=0;i<9;i++){
16 | log("这里是脚本2 loop"+i);
17 | sleep(100);
18 | }
19 | mainEngine.emit("control",index);
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/脚本引擎实现顺序执行-1.0.0.1/脚本3.js:
--------------------------------------------------------------------------------
1 | var mainEngine;
2 | var index;
3 |
4 | var ii=setInterval(()=>{},1000)
5 | events.on("prepare",function(i,obj){
6 | mainEngine=obj;
7 | index=i;
8 | main();
9 | clearInterval(ii);
10 | });
11 |
12 |
13 | //执行逻辑
14 | function main(){
15 | for(var i=0;i<10;i++){
16 | log("这里是脚本3 loop"+i);
17 | sleep(100);
18 | }
19 | mainEngine.emit("control",index);
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/ui延时.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 |
7 | );
8 | threads.start(
9 | function () {
10 | main()
11 | }
12 | )
13 |
14 | function main() {
15 | for (let i = 0; i < 100; i++) {
16 | ui.run(
17 | () => {
18 | ui.num.setText(util.format('第%d只羊', i))
19 | }
20 | )
21 | sleep(1000)
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/canvas/canvas画正方形117.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 |
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/区域找色1.js:
--------------------------------------------------------------------------------
1 | if(!requestScreenCapture()){
2 | toast("请求截图失败");
3 | exit();
4 | }
5 | var img = captureScreen();
6 | toastLog("开始找色");
7 | //指定在位置(100, 220)宽高为400*400的区域找色。
8 | //#75438a是编辑器默认主题的棕红色字体(数字)颜色,位置大约在第5行的"2000",坐标大约为(283, 465)
9 | var point = findColorInRegion(img, "#75438a", 90, 220, 900, 1000);
10 | if(point){
11 | toastLog("x = " + point.x + ", y = " + point.y);
12 | }else{
13 | toastLog("没有找到");
14 | }
15 |
16 |
17 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/字符串/模板字符串.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/模板字符串408.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本排队第二种/1.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | var storage = storages.create("setting");
3 | var date = '1231111111111111'
4 | ui.layout(
5 |
6 |
7 |
8 |
9 | );
10 |
11 | auto();
12 | ui.ok.click(function() {
13 | threads.start(function() {
14 | date = ui.date.text();
15 | log(date);
16 | storage.put("date", date);
17 | log(storage.get("date"));
18 | });
19 | });
20 |
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/区域找色2.js:
--------------------------------------------------------------------------------
1 | if(!requestScreenCapture()){
2 | toast("请求截图失败");
3 | exit();
4 | }
5 | var img = captureScreen();
6 | //0xffffff为白色
7 | toastLog("开始找色");
8 | //指定在位置(90, 220)宽高为900*1000的区域找色。
9 | //0xff00cc是编辑器的深粉红色字体(字符串)颜色
10 | var point = findColor(img, "#ff00cc", {
11 | region: [90, 220, 900, 1000],
12 | threads: 8
13 | });
14 | if(point){
15 | toastLog("x = " + point.x + ", y = " + point.y);
16 | }else{
17 | toastLog("没有找到");
18 | }
19 |
--------------------------------------------------------------------------------
/乱七八糟/sample/控制台/产生随机数.js:
--------------------------------------------------------------------------------
1 | console.show();
2 |
3 | log("将产生5个1到100的随机数");
4 |
5 | for(let i = 0; i < 5; i++){
6 | print(random(1, 100));
7 | print(" ");
8 | sleep(400);
9 | }
10 | print("\n");
11 |
12 | log("将产生10个1到20的不重复随机数");
13 |
14 | var exists = {};
15 |
16 | for(let i = 0; i < 10; i++){
17 | var r;
18 | do{
19 | r = random(1, 20);
20 | }while(exists[r]);
21 | exists[r] = true;
22 | print(r + " ");
23 | sleep(400);
24 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/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 | console.log(url)
14 | toast("哈哈")
15 | }
16 | })
17 |
18 |
19 |
20 | ui.web.setWebViewClient(t);
21 |
22 | ui.web.loadUrl("https://baidu.com")
23 |
24 | toastLog(typeof(t));
25 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/停止除了自身的脚本250.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/复选框.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 |
7 | )
8 | setInterval(
9 | fn,200
10 | )
11 |
12 | function fn(){
13 | if(ui.cb1.isChecked()){
14 | ui.cb1.setText("选了")
15 | }else{
16 | ui.cb1.setText("没选")
17 | }
18 | if(ui.cb2.isChecked()){
19 | ui.cb2.setText("选了")
20 | }else{
21 | ui.cb2.setText("没选")
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/QQ名片点赞脚本.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
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 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/删除行.js:
--------------------------------------------------------------------------------
1 | var path = "/sdcard/脚本/test.txt"
2 | var lineNum = 0
3 | deletedLine(path, lineNum)
4 |
5 | function deletedLine(path, lineNum) {
6 | var file, result;
7 | file = open(path, "r")
8 | result = file.readlines()
9 | file.close();
10 | var tempArr = Array.prototype.slice.call(result);
11 | var line = tempArr.splice(lineNum, 1);
12 | file = open(path, "w")
13 | result = file.writelines(tempArr)
14 | file.flush();
15 | file.close();
16 | return line;
17 | }
18 |
--------------------------------------------------------------------------------
/乱七八糟/sample/界面控件/自定义控件-使用配置勾选框.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | var PrefCheckBox = require('./自定义控件-模块-配置勾选框.js');
4 |
5 | ui.layout(
6 |
7 |
8 |
9 |
10 |
11 | );
12 |
13 | ui.btn.on("click", function(){
14 | toast("配置1为" + PrefCheckBox.getPref().get("perf1"));
15 | toast("配置2为" + PrefCheckBox.getPref().get("perf2"));
16 | });
17 |
18 |
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/输入框光标.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/QQ加好友.js:
--------------------------------------------------------------------------------
1 | textcontains("添加好友").waitfor()
2 | console.show()
3 | if (textcontains(x) exists() t
4 | if (text contains("问题").exists())
5 | {
6 | click("取消")
7 | relset
8 | var c = textcontains"").().text() var a = c split("
9 | num = a[2].split("岁")
10 | num = (num[])
11 | 1 og()
12 | Log(a)
13 | log()
14 | if (num> = 20 && num< = 23) {
15 | click("发送")
16 | reset
17 | click("取消")
18 | }
19 | reiser
20 | log("没有")
21 | click("取消")
22 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/多线程/多线程按键监听.js:
--------------------------------------------------------------------------------
1 | auto();
2 |
3 | threads.start(function(){
4 | //在子线程中调用observeKey()从而使按键事件处理在子线程执行
5 | events.observeKey();
6 | events.on("key_down", function(keyCode, events){
7 | //音量键关闭脚本
8 | if(keyCode == keys.volume_up){
9 | exit();
10 | }
11 | });
12 | });
13 |
14 | toast("音量上键关闭脚本");
15 |
16 | events.on("exit", function(){
17 | toast("脚本已结束");
18 | });
19 |
20 | while(true){
21 | log("脚本运行中...");
22 | sleep(2000);
23 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/动画/视觉干扰神器(记忆力增强).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 | while (true) {
20 | sleep(100);
21 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/安卓7.0+点按和手势/心形手势.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/监听/输入框删除监听.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | importClass(android.text.TextWatcher)
3 | ui.layout(
4 |
5 |
6 |
7 | )
8 | var myTextWatcher = new TextWatcher({
9 | onTextChanged:function(CharSequence, start, before, count) {
10 | toastLog(start)
11 | }
12 | });
13 | ui.input.addTextChangedListener(myTextWatcher)
14 | setTimeout(function(){
15 | ui.input.removeTextChangedListener(myTextWatcher)
16 | toastLog('删掉监听了')
17 | },3000)
18 |
--------------------------------------------------------------------------------
/乱七八糟/sample/多线程/多线程简单示例.js:
--------------------------------------------------------------------------------
1 |
2 | //启动一个线程
3 | threads.start(function(){
4 | //在线程中每隔1秒打印"线程1"
5 | while(true){
6 | log("线程1");
7 | sleep(1000);
8 | }
9 | });
10 |
11 | //启动另一个线程
12 | threads.start(function(){
13 | //在线程中每隔2秒打印"线程1"
14 | while(true){
15 | log("线程2");
16 | sleep(2000);
17 | }
18 | });
19 |
20 | //在主线程中每隔3秒打印"主线程"
21 | for(var i = 0; i < 10; i++){
22 | log("主线程");
23 | sleep(3000);
24 | }
25 | //打印100次后退出所有线程
26 | threads.shutDownAll();
27 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/直接打开开发者模式.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);
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/cookie.js:
--------------------------------------------------------------------------------
1 |
2 | // 免费版
3 | http.__okhttp__.muteClient(new OkHttpClient.Builder().cookieJar(new org.autojs.autojs.network.util.WebkitCookieManagerProxy()))
4 | var cookieManager = android.webkit.CookieManager.getInstance();
5 |
6 | cookieManager.removeAllCookie();
7 | cookieManager.removeSessionCookie();
8 |
9 | // 专业版
10 | http.__okhttp__.muteClient(new OkHttpClient.Builder().cookieJar(web.webkitCookieJar))
11 | var cookieManager = web.cookieManager;
12 | cookieManager.removeAllCookie();
13 | cookieManager.removeSessionCookie();
14 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/查询本机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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/http/1查询本机IP地理位置322.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/花500买的_联系人_短信_日历_通话记录/短信/发短信.js:
--------------------------------------------------------------------------------
1 | importClass(android.net.Uri);
2 | importClass(android.content.ContentValues);
3 | //轮子地址
4 | //https://blog.csdn.net/alittleforward/article/details/40949669
5 |
6 |
7 | var values = new ContentValues();
8 | values.put("address", "10010");
9 | //1为收 2为发
10 | values.put("type", "2");
11 | //阅读状态,0未读1已读
12 | values.put("read", "0");
13 | values.put("body", "我发了一条短信");
14 | values.put("person", "test");
15 | context.getApplicationContext().getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/[刷脸打卡]快速进入钉钉打卡界面.js:
--------------------------------------------------------------------------------
1 | //需要用到root权限 否则打不开
2 | var TimeStamp = Math.round(new Date());
3 | var corpId = ""; //自己想办法获取公司的ID ding开头的一串码
4 | shell("am start -n com.alibaba.android.rimet/com.alibaba.lightapp.runtime.activity.CommonWebViewActivity"+
5 | " -a android.intent.action.VIEW"+
6 | " --es url 'https://attend.dingtalk.com/attend/index.html?swtrace=oa_cloud_attendance_onduty_remind&showmenu=false&_progress=false&_from=oa&corpId="+corpId+"&_biz=onDuty_remind'"+
7 | " --el navi_to_open_mini_app "+TimeStamp+
8 | " --es title '考勤打卡'", true);
--------------------------------------------------------------------------------
/乱七八糟/sample/对话框/简单计算器.js:
--------------------------------------------------------------------------------
1 | var num1 = dialogs.input("请输入第一个数字");
2 | var op = dialogs.singleChoice("请选择运算", ["加", "减", "乘", "除", "幂"]);
3 | var num2 = dialogs.input("请输入第二个数字");
4 | var result = 0;
5 | switch(op){
6 | case 0:
7 | result = num1 + num2;
8 | break;
9 | case 1:
10 | result = num1 - num2;
11 | break;
12 | case 2:
13 | result = num1 * num2;
14 | break;
15 | case 3:
16 | result = num1 / num2;
17 | break;
18 | case 4:
19 | result = Math.pow(num1, num2);
20 | break;
21 | }
22 | alert("运算结果", result);
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/1获取当前app名字122.js:
--------------------------------------------------------------------------------
1 | function 判断当前app() {
2 | console.show();
3 | var result = shell('dumpsys activity top | grep ACTIVITY > /sdcard/1当前app.txt', true);
4 | log(result);
5 | if (result.code == 0) {
6 | toast("执行成功");
7 | } else {
8 | toast("执行失败!请到控制台查看错误信息");
9 | exit()
10 | }
11 | var 文本 = files.read("/sdcard/1当前app.txt")
12 | log("文本=", 文本)
13 | var 当前包名 = /ACTIVITY *(.*)\//.exec(文本)[1]
14 | log('当前包名=', 当前包名)
15 | var appName = getAppName(当前包名)
16 | log('appName=', appName)
17 | }
18 | 判断当前app()
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/获取wifi信息.js:
--------------------------------------------------------------------------------
1 | wifi = context .getSystemService("wifi");
2 | info = wifi.getConnectionInfo();
3 | log(info.getMacAddress());
4 |
5 |
6 |
7 | var MAC_ADDR = shell("ifconfig |grep 'wlan0'");
8 |
9 | log(MAC_ADDR);
10 |
11 |
12 | importClass(android.net.wifi.WifiManager);
13 | importClass(android.net.wifi.WifiInfo);
14 | function getMac(context){
15 | var wifi = context.getSystemService(context.WIFI_SERVICE);
16 | var info = wifi.getConnectionInfo();
17 | return info.getMacAddress();
18 | }
19 | log(getMac(context))
20 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/免费时间API.js:
--------------------------------------------------------------------------------
1 | //淘宝时间戳API
2 | var recode_taobao = http.get("http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp");
3 | var tapbaoTime = recode_taobao.body.json().data.t;
4 | log(tapbaoTime);
5 | //腾讯QQ时间API
6 | var recode_qq = http.get("http://cgi.im.qq.com/cgi-bin/cgi_svrtime");
7 | var qqTime = recode_qq.body.string();
8 | log(qqTime);
9 | //苏宁时间API
10 | var recode_suning = http.get("http://quan.suning.com/getSysTime.do");
11 | var suningTime = recode_suning.body.json();
12 | log(suningTime.sysTime1);
13 | log(suningTime.sysTime2);
--------------------------------------------------------------------------------
/乱七八糟/sample/文件读写/文件编码转换(高级).js:
--------------------------------------------------------------------------------
1 |
2 |
3 | convert("/sdcard/1.txt", "utf-8", "/sdcard/2.txt", "gbk");
4 |
5 | /**
6 | * fromFile: 源文件路径
7 | * fromEncoding: 源文件编码
8 | * toFile: 输出文件路径
9 | * toEncoding: 输出文件编码
10 | */
11 | function convert(fromFile, fromEncoding, toFile, toEncoding){
12 | fromFile = open(fromFile, "r", fromEncoding);
13 | toFile = open(toFile, "w", toEncoding);
14 | while(true){
15 | var line = fromFile.readline();
16 | if(!line)
17 | break;
18 | toFile.writeline(line);
19 | }
20 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/flash.js:
--------------------------------------------------------------------------------
1 | //导入模块
2 | function 导入常用函数模块(){
3 | var url='https://raw.githubusercontent.com/snailuncle/autojsDemo/master/autojsCommonFunctions.js'
4 | var r = http.get(url)
5 | log("code = " + r.statusCode);
6 | var html=r.body.bytes()
7 | files.write('./autojsCommonFunctions.js','')
8 | files.writeBytes('./autojsCommonFunctions.js',html)
9 | var common=require('./autojsCommonFunctions.js')
10 | return common
11 | }
12 | var common=导入常用函数模块()
13 | log(common)
14 | for(let i=0;i<33;i++){
15 | common.闪光弹('fire in the hole')
16 | }
17 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手势/心形手势.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);
21 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/http/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("程序结束");
21 |
--------------------------------------------------------------------------------
/乱七八糟/sample/协程/ui中使用协程/main.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 | UI中使用协程
7 |
8 |
9 | );
10 |
11 | continuation.delay(5000);
12 | if (!requestScreenCapture()) {
13 | dialogs.alert("请授予软件截图权限").await();
14 | }
15 |
16 |
17 | // 退出应用对话框
18 | ui.emitter.on("back_pressed", function (e) {
19 | e.consumed = true;
20 | let exit = dialogs.confirm("确定要退出程序").await();
21 | if (exit) {
22 | ui.finish();
23 | }
24 | });
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/颜色获取和检测.js:
--------------------------------------------------------------------------------
1 | if(!requestScreenCapture()){
2 | toast("请求截图失败");
3 | exit
4 | }
5 | sleep(2000);
6 | var x = 760;
7 | var y = 180;
8 | //获取在点(x, y)处的颜色
9 | var c = images.pixel(captureScreen(), x, y);
10 | //显示该颜色
11 | var msg = "";
12 | msg += "在位置(" + x + ", " + y + ")处的颜色为" + colors.toString(c);
13 | msg += "\nR = " + colors.red(c) + ", G = " + colors.green(c) + ", B = " + colors.blue(c);
14 | //检测在点(x, y)处是否有颜色#73bdb6 (模糊比较)
15 | var isDetected = images.detectsColor(captureScreen(), "#73bdb6", x, y);
16 | msg += "\n该位置是否匹配到颜色#73bdb6: " + isDetected;
17 | alert(msg);
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/二维码识别186.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());
--------------------------------------------------------------------------------
/乱七八糟/Demo/时间/实时显示脚本运行时长.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/jar/二维码识别.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());
15 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/实时显示脚本运行时长214.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/悬浮窗日志.js:
--------------------------------------------------------------------------------
1 | let w = floaty.rawWindow(
2 |
3 |
4 |
5 | );
6 | w.setSize(-1, -1);
7 | w.setTouchable(false);
8 | ui.run(() => {
9 | w.ConS.setConsole(org.autojs.autojs.autojs.AutoJs.getInstance().getGlobalConsole());
10 | w.ConS.findViewById(org.autojs.autojs.R.id.input_container).setVisibility(android.view.View.GONE);
11 | });
12 | threads.start(function() {
13 | let a = 0;
14 | while (true) {
15 | // log(a++);
16 | sleep(1000);
17 | };
18 | })
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/app操作/最新安装的app176.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/intent/语音识别.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 |
--------------------------------------------------------------------------------
/乱七八糟/sample/事件与按键、触摸监听/通知监听.js:
--------------------------------------------------------------------------------
1 | auto();
2 | events.observeNotification();
3 | events.onNotification(function(notification){
4 | printNotification(notification);
5 | });
6 | toast("监听中,请在日志中查看记录的通知及其内容");
7 |
8 | function printNotification(notification){
9 | log("应用包名: " + notification.getPackageName());
10 | log("通知文本: " + notification.getText());
11 | log("通知优先级: " + notification.priority);
12 | log("通知目录: " + notification.category);
13 | log("通知时间: " + new Date(notification.when));
14 | log("通知数: " + notification.number);
15 | log("通知摘要: " + notification.tickerText);
16 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/脚本引擎实现顺序执行-1.0.0.1/main.js:
--------------------------------------------------------------------------------
1 | const scripts=["脚本1.js","脚本2.js","脚本3.js"]
2 | var enginess=[];
3 |
4 | var mainEnengine=engines.myEngine();
5 |
6 | var iii=setInterval(()=>{},1000);//保持主脚本不停,实际使用有ui也可以没有这个
7 |
8 | events.on("control",(i)=>{
9 | i++;
10 | if(i>=scripts.length)exit();//这里不知道为什么用clearInterval不行
11 |
12 | var ae=engines.execScriptFile(scripts[i])
13 | sleep(500)//等待脚本运行
14 | var aengine=ae.getEngine();
15 | aengine.emit("prepare",i,mainEnengine)
16 |
17 | enginess.push(aengine);//便于后续管理
18 | });
19 |
20 | mainEnengine.emit("control",-1);
21 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/二维码/图片二维码识别.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());
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/Switch控件242.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/UI和悬浮窗一起使用的完整栗子/带属性的悬浮窗.js:
--------------------------------------------------------------------------------
1 | var View点击事件=require('./View点击事件.js')
2 |
3 | function 带属性的悬浮窗(windowName,window){
4 | this.name=windowName
5 | this.window=window
6 | }
7 | 带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){
8 | log("带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){")
9 | log(viewName)
10 | log(view)
11 | log(clickAction)
12 | var window=this.window
13 | var 添加了点击事件的view=new View点击事件(window,viewName,view,clickAction)
14 | log('setViewClickAction已设置-->'+viewName)
15 | return viewName
16 | }
17 |
18 | module.exports=带属性的悬浮窗
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/悬浮窗和UI一起使用的例子/带属性的悬浮窗.js:
--------------------------------------------------------------------------------
1 | var View点击事件=require('./View点击事件.js')
2 |
3 | function 带属性的悬浮窗(windowName,window){
4 | this.name=windowName
5 | this.window=window
6 | }
7 | 带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){
8 | log("带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){")
9 | log(viewName)
10 | log(view)
11 | log(clickAction)
12 | var window=this.window
13 | var 添加了点击事件的view=new View点击事件(window,viewName,view,clickAction)
14 | log('setViewClickAction已设置-->'+viewName)
15 | return viewName
16 | }
17 |
18 | module.exports=带属性的悬浮窗
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/UI和悬浮窗一起使用的完整栗子/带属性的悬浮窗.js:
--------------------------------------------------------------------------------
1 | var View点击事件=require('./View点击事件.js')
2 |
3 | function 带属性的悬浮窗(windowName,window){
4 | this.name=windowName
5 | this.window=window
6 | }
7 | 带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){
8 | log("带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){")
9 | log(viewName)
10 | log(view)
11 | log(clickAction)
12 | var window=this.window
13 | var 添加了点击事件的view=new View点击事件(window,viewName,view,clickAction)
14 | log('setViewClickAction已设置-->'+viewName)
15 | return viewName
16 | }
17 |
18 | module.exports=带属性的悬浮窗
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/悬浮窗和UI一起使用的例子/带属性的悬浮窗.js:
--------------------------------------------------------------------------------
1 | var View点击事件=require('./View点击事件.js')
2 |
3 | function 带属性的悬浮窗(windowName,window){
4 | this.name=windowName
5 | this.window=window
6 | }
7 | 带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){
8 | log("带属性的悬浮窗.prototype.setViewClickAction=function(viewName,view,clickAction){")
9 | log(viewName)
10 | log(view)
11 | log(clickAction)
12 | var window=this.window
13 | var 添加了点击事件的view=new View点击事件(window,viewName,view,clickAction)
14 | log('setViewClickAction已设置-->'+viewName)
15 | return viewName
16 | }
17 |
18 | module.exports=带属性的悬浮窗
19 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/花500买的_联系人_短信_日历_通话记录/短信/收短信.js:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | 作者: 弦鱼
4 | */
5 | importClass(android.net.Uri);
6 | importClass(android.content.ContentValues);
7 | //轮子地址
8 | //https://blog.csdn.net/shaohuawuxian/article/details/84487208
9 |
10 | var values = new ContentValues();
11 | values.put("address", "1856680");
12 | values.put("type", "1");
13 | values.put("read", "0");
14 | values.put("body", "我收到一条短信");
15 | values.put("person", "test");
16 | context.getApplicationContext().getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
17 |
18 | 这个短信 设置为未读 怎么才能想正常短信未读一样 在通知栏提醒一下?
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/获取ui界面左上角坐标.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | var marginSize = '100'
3 | var myMargin = marginSize + ' ' + marginSize + ' ' + marginSize + ' ' + marginSize
4 | ui.layout(
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | )
13 | ui.post(
14 | function () {
15 | var view = ui.board
16 | var rect = new android.graphics.Rect;
17 | view.getBoundsOnScreen(rect)
18 | log(rect.left)
19 | log(rect.top)
20 | log(rect.centerX())
21 | log(rect.centerY())
22 | }
23 | )
24 |
25 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/删除空白文件.js:
--------------------------------------------------------------------------------
1 | if(confirm("该操作会删除SD卡目录及其子目录下所有空文件夹,是否继续?")){
2 | toast("请点击右上角打开日志");
3 | deleteAllEmptyDirs(files.getSdcardPath());
4 | toast("全部完成!");
5 | }
6 |
7 | function deleteAllEmptyDirs(dir){
8 | var list = files.listDir(dir);
9 | var len = list.length;
10 | if(len == 0){
11 | log("删除目录 " + dir + " " + (files.remove(dir) ? "成功" : "失败"));
12 | return;
13 | }
14 | for(let i = 0; i < len; i++){
15 | var child = files.join(dir, list[i]);
16 | if(files.isDir(child)){
17 | deleteAllEmptyDirs(child);
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/第三方API接口/语音识别177.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 |
--------------------------------------------------------------------------------
/乱七八糟/sample/事件与按键、触摸监听/长按返回退出当前程序.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | var 长按间隔 = 1500;
4 |
5 | var curPackage = null;
6 | var timeoutId = null;
7 |
8 | events.observeKey();
9 |
10 | events.onKeyDown("back", function(event){
11 | curPackage = currentPackage();
12 | timeoutId = setTimeout(function(){
13 | backBackBackBack();
14 | }, 长按间隔);
15 | });
16 |
17 | events.onKeyUp("back", function(event){
18 | clearTimeout(timeoutId);
19 | });
20 |
21 | loop();
22 |
23 | function backBackBackBack(){
24 | while(curPackage == currentPackage()){
25 | back();
26 | sleep(200);
27 | }
28 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/文件读写/删除所有空文件夹.js:
--------------------------------------------------------------------------------
1 | if(confirm("该操作会删除SD卡目录及其子目录下所有空文件夹,是否继续?")){
2 | toast("请点击右上角打开日志");
3 | deleteAllEmptyDirs(files.getSdcardPath());
4 | toast("全部完成!");
5 | }
6 |
7 | function deleteAllEmptyDirs(dir){
8 | var list = files.listDir(dir);
9 | var len = list.length;
10 | if(len == 0){
11 | log("删除目录 " + dir + " " + (files.remove(dir) ? "成功" : "失败"));
12 | return;
13 | }
14 | for(let i = 0; i < len; i++){
15 | var child = files.join(dir, list[i]);
16 | if(files.isDir(child)){
17 | deleteAllEmptyDirs(child);
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/悬浮窗和UI一起使用的例子/view点击事件.js:
--------------------------------------------------------------------------------
1 | var 悬控移动和点击=require('./悬控移动和点击.js')
2 | function View点击事件(window,viewName,view,clickAction){
3 | this.window=window
4 | this.name=viewName
5 | this.view=view
6 | var 默认点击动作=()=>{
7 | toast(this.name+'被点了')
8 | }
9 | this.clickAction = 默认点击动作
10 | if(clickAction){
11 | this.clickAction = clickAction
12 | 悬控移动和点击(window,viewName,view,clickAction)
13 | }
14 | }
15 | View点击事件.prototype.setClickAction=function(clickAction){
16 | this.clickAction=function (){
17 | 悬控移动和点击(window,viewName,view,clickAction)
18 | }
19 | }
20 |
21 | module.exports=View点击事件
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/双击返回退出的ui266.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 | });
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/双击返回退出的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 | });
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/UI和悬浮窗一起使用的完整栗子/view点击事件.js:
--------------------------------------------------------------------------------
1 | var 悬控移动和点击=require('./悬控移动和点击.js')
2 | function View点击事件(window,viewName,view,clickAction){
3 | this.window=window
4 | this.name=viewName
5 | this.view=view
6 | var 默认点击动作=()=>{
7 | toast(this.name+'被点了')
8 | }
9 | this.clickAction = 默认点击动作
10 | if(clickAction){
11 | this.clickAction = clickAction
12 | 悬控移动和点击(window,viewName,view,clickAction)
13 | }
14 | }
15 | View点击事件.prototype.setClickAction=function(clickAction){
16 | this.clickAction=function (){
17 | 悬控移动和点击(window,viewName,view,clickAction)
18 | }
19 | }
20 |
21 | module.exports=View点击事件
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/1删除重写@data@data@com.aaa.bbb226.js:
--------------------------------------------------------------------------------
1 | path="/data/data/com.aaa.bbb"
2 | pathSD="/sdcard/com.aaa.bbb"
3 | //删除原来的文件
4 | shell('chown root:root '+path,true)
5 | shell('rm '+path+" -rf",true);
6 | shell('rm '+pathSD+" -rf",true);
7 | sleep(2000)
8 |
9 | // 解压备份的文件
10 | inkeSdacrdPath="/sdcard/com.aaa.bbb.zip"
11 | 文件路径=inkeSdacrdPath
12 | 文件夹路径="/sdcard"
13 | com.stardust.io.Zip.unzip(new java.io.File(文件路径), new java.io.File(文件夹路径))
14 | sleep(2000)
15 |
16 | //移动解压后的文件
17 | shell("mv -f /sdcard/com.aaa.bbb /data/data/com.aaa.bbb",true);
18 |
19 | //修改权限
20 | shell("chmod -R 777 /data/data/com.aaa.bbb",true);
21 |
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/广播/打印广播Intent信息232.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 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/UI和悬浮窗一起使用的完整栗子/view点击事件.js:
--------------------------------------------------------------------------------
1 | var 悬控移动和点击=require('./悬控移动和点击.js')
2 | function View点击事件(window,viewName,view,clickAction){
3 | this.window=window
4 | this.name=viewName
5 | this.view=view
6 | var 默认点击动作=()=>{
7 | toast(this.name+'被点了')
8 | }
9 | this.clickAction = 默认点击动作
10 | if(clickAction){
11 | this.clickAction = clickAction
12 | 悬控移动和点击(window,viewName,view,clickAction)
13 | }
14 | }
15 | View点击事件.prototype.setClickAction=function(clickAction){
16 | this.clickAction=function (){
17 | 悬控移动和点击(window,viewName,view,clickAction)
18 | }
19 | }
20 |
21 | module.exports=View点击事件
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/悬浮窗和UI一起使用的例子/view点击事件.js:
--------------------------------------------------------------------------------
1 | var 悬控移动和点击=require('./悬控移动和点击.js')
2 | function View点击事件(window,viewName,view,clickAction){
3 | this.window=window
4 | this.name=viewName
5 | this.view=view
6 | var 默认点击动作=()=>{
7 | toast(this.name+'被点了')
8 | }
9 | this.clickAction = 默认点击动作
10 | if(clickAction){
11 | this.clickAction = clickAction
12 | 悬控移动和点击(window,viewName,view,clickAction)
13 | }
14 | }
15 | View点击事件.prototype.setClickAction=function(clickAction){
16 | this.clickAction=function (){
17 | 悬控移动和点击(window,viewName,view,clickAction)
18 | }
19 | }
20 |
21 | module.exports=View点击事件
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/开发者选项-指针位置116.js:
--------------------------------------------------------------------------------
1 | // 此脚本可以切换开发者选项中的显示指针位置
2 | // 感谢 @家 指点如何打开开发者选项
3 |
4 | auto.waitFor();
5 | app.startActivity({
6 | action: "android.intent.action.VIEW", //此处可为其他值
7 | packageName: "com.android.settings",
8 | className: "com.android.settings.Settings$DevelopmentSettingsActivity"
9 | //此处可以加入其他内容,如data、extras
10 | });
11 | sleep(200);
12 | while (!textContains("指针位置").exists()) {
13 | //sleep(50);
14 | scrollDown();
15 | sleep(100);
16 | }
17 | var zz = textContains("指针位置").findOne(5000);
18 | if (zz) {
19 | a = click("指针位置");
20 | toastLog("指针位置切换成功:" + a);
21 | back();
22 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/九九乘法表.js:
--------------------------------------------------------------------------------
1 | function 循环(i, n) { //数位长度, 要转换的数
2 | var sz = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
3 | var c = sz.length;
4 | if (i < 0) return;
5 | for (var a = 0, o = n; a < i; a++) {
6 | o = parseInt(o / c);
7 | }
8 | D += sz[o % c];
9 | 循环(--i, n);
10 | }
11 |
12 | var D = []
13 | 循环(9, 556);
14 | log(D);
15 | /*
16 | //你敢运行一下被注释的(可怕的)代码吗!
17 | for (var k = 0; k < 99; k++) {
18 | var D = []
19 | 循环(9, k);
20 | log(D)
21 | }*/
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/双击返回退出的ui.js:
--------------------------------------------------------------------------------
1 |
2 | "ui";
3 | ui.layout(
4 |
5 |
6 |
7 | );
8 | var isCanFinish = false;
9 | var isCanFinishTimeout;
10 | ui.emitter.on("back_pressed", e => {
11 | if (!isCanFinish) {
12 | isCanFinish = true;
13 | isCanFinishTimeout=setTimeout(() => {
14 | toastLog("双击退出");
15 | isCanFinish = false;
16 | }, 400);
17 | e.consumed = true;
18 | } else {
19 | clearTimeout(isCanFinishTimeout);
20 | e.consumed = false;
21 | };
22 | });
23 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/开发者选项指针位置.js:
--------------------------------------------------------------------------------
1 | // 此脚本可以切换开发者选项中的显示指针位置
2 | // 感谢 @家 指点如何打开开发者选项
3 |
4 | auto.waitFor();
5 | app.startActivity({
6 | action: "android.intent.action.VIEW", //此处可为其他值
7 | packageName: "com.android.settings",
8 | className: "com.android.settings.Settings$DevelopmentSettingsActivity"
9 | //此处可以加入其他内容,如data、extras
10 | });
11 | sleep(200);
12 | while (!textContains("指针位置").exists()) {
13 | //sleep(50);
14 | scrollDown();
15 | sleep(100);
16 | }
17 | var zz = textContains("指针位置").findOne(5000);
18 | if (zz) {
19 | a = click("指针位置");
20 | toastLog("指针位置切换成功:" + a);
21 | back();
22 | }
23 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/花500买的_联系人_短信_日历_通话记录/短信/读短信.js:
--------------------------------------------------------------------------------
1 | importClass(android.net.Uri);
2 |
3 | //轮子地址
4 | //https://blog.csdn.net/adminlxb89/article/details/81068419
5 |
6 |
7 | var SMS_INBOX = Uri.parse("content://sms/");
8 | var cr = context.getApplicationContext().getContentResolver();
9 | var projection = ["_id", "address", "person", "body", "date", "type"]
10 | var cur = cr.query(SMS_INBOX, projection, null, null, "date desc");
11 |
12 | while (cur.moveToNext()) {
13 | var number = cur.getString(cur.getColumnIndex("address")); //手机号
14 | var body = cur.getString(cur.getColumnIndex("body")); //短信内容
15 | log(number + ":" + body)
16 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/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 | log("extras = ", intent.extras);
11 | if (extras) {
12 | let str = "{\n";
13 | let iter = extras.keySet().iterator();
14 | while (iter.hasNext()) {
15 | let key = iter.next();
16 | let value = extras.get(key);
17 | str += " " + key + ": " + value;
18 | str += ", \n";
19 | }
20 | str += "}";
21 | log(str);
22 | }
23 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/canvas/截图水印.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);
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/截图水印.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);
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/百度翻译[中转英].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("今天天气好晴朗"));
--------------------------------------------------------------------------------
/乱七八糟/Demo/canvas/截图水印412.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);
--------------------------------------------------------------------------------
/乱七八糟/Demo/养号/dy关注粉丝/Command.js:
--------------------------------------------------------------------------------
1 | function Command(name,limitTime){
2 | this.name=name
3 | this.action=()=>{}
4 | this.limitTime=limitTime || 3000
5 | var that=this
6 | this.go=function(args1,args2){
7 | log('命令'+this.name+'开始')
8 | var myId=threads.start(
9 | function(){
10 | that.action(args1,args2)
11 | }
12 | )
13 | sleep(this.limitTime)
14 | if(myId && myId.isAlive && myId.isAlive()){
15 | myId.interrupt()
16 | }
17 | log('命令'+this.name+'结束')
18 | }
19 | }
20 |
21 | Command.prototype.setAction=function(action){
22 | this.action=action
23 | }
24 | module.exports=Command
25 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/花500买的_联系人_短信_日历_通话记录/通讯录增删改查/读取通讯录.js:
--------------------------------------------------------------------------------
1 | importClass(android.provider.ContactsContract);
2 | //自己照着轮子写的
3 | //https://m.jb51.net/article/143106.htm
4 |
5 | var cursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
6 | while (cursor.moveToNext()) {
7 | //获取联系人姓名
8 | var displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
9 | //获取联系人手机号
10 | var number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
11 | //把取出的两类数据进行拼接
12 | log(displayName + ":" + number);
13 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/只同时运行一个脚本.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 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/shell启动脚本.js:
--------------------------------------------------------------------------------
1 | // 需要root
2 | function runScript(path){
3 | shell("am start -n org.autojs.autojs/org.autojs.autojs.external.open.RunIntentActivity -d file://" + path + " -t application/x-javascript",true)
4 | }
5 | path='/sdcard/脚本/2.js'
6 | runScript(path)
7 |
8 | function runScriptPro1(path) {
9 | shell("am start -n org.autojs.autojspro/org.autojs.autojs.external.open.RunIntentActivity -d file://" + path + " -t application/x-javascript", true)
10 | }
11 |
12 | function runScriptPro2(path) {
13 | shell("am start -n org.autojs.autojspro/org.autojs.autojs.external.open.RunIntentActivity -d file://" + path + " -t text/javascript", true)
14 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/单例模式.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/提取广播数据126.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/app操作/获取app图标1229.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")
--------------------------------------------------------------------------------
/乱七八糟/sample/界面控件/按钮控件.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | );
13 |
14 | ui.click_me.on("click", ()=>{
15 | toast("我被点啦");
16 | });
17 |
18 | ui.click_me.on("long_click", ()=>{
19 | toast("我被长按啦");
20 | });
--------------------------------------------------------------------------------
/乱七八糟/sample/本地存储/随手记.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 | 随手记
6 |
7 |
8 |
9 |
10 | );
11 | var storage = storages.create("Auto.js例子:随手记");
12 | var content = storage.get("content");
13 | if(content != null){
14 | ui.content.setText(content);
15 | }
16 | ui.save.click(()=>{
17 | storage.put("content", ui.content.text());
18 | });
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/文件/读写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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/读写@data目录文件379.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/繁简转换/繁简转换.js:
--------------------------------------------------------------------------------
1 | var path=module.id.substring(0,module.id.lastIndexOf("/"))
2 | const JT=files.read(path+"/simple.txt");
3 | const FT=files.read(path+"/complex.txt");
4 |
5 | var JFConverter={};
6 |
7 | JFConverter.J2F=function(str){
8 | var ret="";
9 | for(var i of str){
10 | var index=JT.indexOf(i);
11 | if(index==-1)ret+=i;
12 | else ret+=FT[index];
13 | }
14 | return ret;
15 | }
16 |
17 | JFConverter.F2J=function(str){
18 | var ret="";
19 | for(var i of str){
20 | var index=FT.indexOf(i);
21 | if(index==-1)ret+=i;
22 | else ret+=JT[index];
23 | }
24 | return ret;
25 | }
26 |
27 | module.exports = JFConverter;
28 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/脚本引擎实现顺序执行/main.js:
--------------------------------------------------------------------------------
1 | var advancedEngines=require("advancedEngines.js")
2 | const scripts=["脚本1.js","脚本2.js","脚本3.js"]
3 | var enginess=[];
4 |
5 | var mainEngine=engines.myEngine();
6 | var iii=setInterval(()=>{},1000);//保持主脚本不停,实际使用有ui也可以没有这个
7 |
8 | events.on("control",(i)=>{
9 | i++;
10 | if(i>=scripts.length)exit()//这里不知道为什么用clearInterval不行
11 |
12 | let args={
13 | mainEngine:mainEngine,
14 | index:i
15 | }
16 | var ae=advancedEngines.execScriptFile(scripts[i],args)
17 | while(!ae.getEngine());//等待脚本运行
18 | let aengine=ae.getEngine()
19 | enginess.push(aengine);//便于后续管理
20 | });
21 | mainEngine.emit("control",-1);
22 |
--------------------------------------------------------------------------------
/乱七八糟/sample/界面控件/时间日期选择控件.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | )
--------------------------------------------------------------------------------
/乱七八糟/sample/事件与按键、触摸监听/音量键控制程序.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | events.observeKey();
4 |
5 | var interval = 5000;
6 | var task = task1;
7 |
8 | events.onKeyDown("volume_up", function(event){
9 | if(task == task1){
10 | task = task2;
11 | }else{
12 | task = task1;
13 | }
14 | toast("任务已切换");
15 | });
16 |
17 | events.onKeyDown("volume_down", function(event){
18 | toast("程序结束");
19 | exit();
20 | });
21 |
22 | task();
23 |
24 | loop();
25 |
26 | function task1(){
27 | toast("任务1运行中,音量下键结束,音量上键切换任务");
28 | setTimeout(task, interval);
29 | }
30 |
31 | function task2(){
32 | toast("任务2运行中,音量下键结束,音量上键切换任务");
33 | setTimeout(task, interval);
34 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/ui启动ui-1.0.0.1/main.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | "ui";
3 |
4 | ui.layout(
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | );
14 |
15 | ui.click_me.on("click", ()=>{
16 | engines.execScriptFile("./ui.js");
17 | });
18 |
19 | ui.click_me.on("long_click", ()=>{
20 | toast("我被长按啦");
21 | });
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/最大公约数.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/app操作/强制更新.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * 作者: 家
4 | * QQ: 203118908
5 | * 功能: 强制更新app
6 | */
7 | 'ui';
8 | var dialog = new android.app.AlertDialog.Builder(activity).setTitle("Tips").setMessage("请更新最新版本!")
9 | .setNeutralButton("退出", new android.content.DialogInterface
10 | .OnClickListener({
11 | onClick: (dialog, which) => {
12 | exit()
13 | }
14 | })
15 | ).setNegativeButton("更新", new android.content.DialogInterface
16 | .OnClickListener({
17 | onClick: (dialog, which) => {
18 | toastLog('在这里更新app')
19 | }
20 | })
21 | ).show();
22 | dialog.setCanceledOnTouchOutside(false); //点击dialog其它地方dismiss无效
23 | dialog.setCancelable(false); //点击返回键无效
24 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/微信搜索框输入消息291.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/取关全部公众号.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | //if (confirm("将会取关所有公众号,是否继续")) {
4 | unfollowAll();
5 | //}
6 |
7 | function unfollowAll() {
8 | //launchApp("微信");
9 | sleep(3000);
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 | log(item);
17 | unfollow(item);
18 | sleep(400);
19 | }
20 | });
21 | }
22 | }
23 |
24 | function unfollow(item) {
25 | item.longClick();
26 | while (!click("取消关注"));
27 | while (!click("不再关注"));
28 | }
29 |
--------------------------------------------------------------------------------
/乱七八糟/sample/设备与设备信息/获取设备信息.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 |
--------------------------------------------------------------------------------
/乱七八糟/sample/图片与图色处理/找图/找出问号方块并画出位置.js:
--------------------------------------------------------------------------------
1 |
2 | var superMario = images.read("./super_mario.jpg");
3 | var block = images.read("./block.png");
4 | var points = images.matchTemplate(superMario, block, {
5 | threshold: 0.8
6 | }).points;
7 |
8 | toastLog(points);
9 |
10 | var canvas = new Canvas(superMario);
11 | var paint = new Paint();
12 | paint.setColor(colors.parseColor("#2196F3"));
13 | points.forEach(point => {
14 | canvas.drawRect(point.x, point.y, point.x + block.width, point.y + block.height, paint);
15 | });
16 | var image = canvas.toImage();
17 | images.save(image, "/sdcard/tmp.png");
18 |
19 | app.viewFile("/sdcard/tmp.png");
20 |
21 | superMario.recycle();
22 | block.recycle();
23 | image.recycle();
24 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/README.md:
--------------------------------------------------------------------------------
1 | # 一些autojs的脚本
2 | # autojs作者已经决定不再维护autojs, 2019.9.3日最后一次收集整理qq群脚本, 感谢各位qq群员的分享, 此仓库不再更新.
3 | # autojs作者新的安卓端软件, pluto.js V8, 不包含无障碍, 使用 V8 引擎, 支持nodejs, 目标是玩具,工具,应用开发.
4 | # pluto交流q群 662377009
5 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/数组/1求交集222.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/薅羊毛线报.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | importClass(android.webkit.WebViewClient);
3 | importPackage(android.webkit);
4 |
5 | ui.layout(
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | );
15 |
16 | ui.goback.click(() => {
17 | ui.webshow.goBack();
18 | })
19 | ui.goforward.click(() => {
20 | ui.webshow.goForward();
21 | })
22 | ui.res.click(() => {
23 | ui.webshow.reload();
24 | })
25 |
26 | ui.webshow.getSettings().setJavaScriptEnabled(true);
27 | ui.webshow.loadUrl("http://riki.cc/forum-1.htm");
--------------------------------------------------------------------------------
/乱七八糟/sample/界面控件/复选框单选框控件.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | );
19 |
20 | ui.cb1.on("check", (checked)=>{
21 | if(checked){
22 | toast("第一个框被勾选了");
23 | }else{
24 | toast("第一个框被取消勾选了");
25 | }
26 | });
27 |
28 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/支付宝帐单自动清理.js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 |
3 | KS();
4 |
5 | function KS() {
6 | text("账单").waitFor();
7 | if(swipe(500, 500, 500, 1000, 800) == true){
8 | sleep(1000);
9 | }
10 | var i = 0;
11 | while (i < 15) {
12 | var k = desc("日期选择").findOne().parent().parent();
13 | if (k.childCount() < 3) {
14 | toast("清理完毕");
15 | } else {
16 | k.child(3).longClick();
17 | text("删除").waitFor();
18 | sleep(100);
19 | var sc = text("删除").findOne();
20 | sleep(100);
21 | click(sc.bounds().centerX(), sc.bounds().centerY());
22 | }
23 | sleep(150);
24 |
25 | i = i + 1;
26 | }
27 | KS();
28 | }
--------------------------------------------------------------------------------
/乱七八糟/sample/设备与设备信息/调整设备亮度.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 | 亮度
7 |
8 |
9 | );
10 |
11 | //getBrightnessMode()返回亮度模式,1为自动亮度
12 | ui.auto.setChecked(device.getBrightnessMode() == 1);
13 | ui.auto.setOnCheckedChangeListener(function(v, checked){
14 | device.setBrightnessMode(checked ? 1: 0);
15 | });
16 |
17 | ui.brightness.setProgress(device.getBrightness());
18 | ui.brightness.setOnSeekBarChangeListener({
19 | onProgressChanged: function(seekbar, p, fromUser){
20 | if(fromUser){
21 | device.setBrightness(p);
22 | }
23 | }
24 | });
--------------------------------------------------------------------------------
/乱七八糟/sample/文件读写/读写文本文件.js:
--------------------------------------------------------------------------------
1 | //以写入模式打开SD卡根目录文件1.txt
2 | var file = open("/sdcard/1.txt", "w")
3 | //写入aaaa
4 | file.write("aaaa");
5 | //写入bbbbb后换行
6 | file.writeline("bbbbb");
7 | //写入ccc与ddd两行
8 | file.writelines(["ccc", "ddd"]);
9 | //关闭文件
10 | file.close();
11 |
12 | //以附加模式打开文件
13 | file = open("/sdcard/1.txt", "a");
14 | //附加一行"啦啦啦啦"
15 | file.writeline("啦啦啦啦");
16 | //附加一行"哈哈哈哈"
17 | file.writeline("哈哈哈哈");
18 | //附加两行ccc, ddd
19 | file.writelines(["ccc", "ddd"]);
20 | //输出缓冲区
21 | file.flush();
22 | //关闭文件
23 | file.close();
24 |
25 |
26 | //以读取模式打开文件
27 | file = open("/sdcard/test.txt", "r")
28 | //读取一行并打印
29 | print(file.readline());
30 | //读取剩余所有行并打印
31 | for each(line in file.readlines()){
32 | print(line)
33 | }
34 | file.close()
35 |
36 | //显示控制台
37 | console.show()
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/百度文字识别(自动获取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));
--------------------------------------------------------------------------------
/乱七八糟/Demo/第三方API接口/百度AI开放平台人脸检测102.js:
--------------------------------------------------------------------------------
1 | auto()
2 | requestUrl="https://aip.baidubce.com/rest/2.0/face/v3/detect"
3 | accessToken = '你的token一般是这样的24.440c39cd127bd6c2695e3273df0e4f4e.2592000.1534'
4 | requestUrl = requestUrl + "?access_token=" + accessToken
5 |
6 | imgFile="/sdcard/zly.png"
7 | function img64(imgFile){
8 | let img=images.read(imgFile)
9 | let img64=images.toBase64(img)
10 | return img64
11 | }
12 | imageBase64=img64(imgFile)
13 |
14 | console.show();
15 | var res = http.post(requestUrl, {
16 | headers: {
17 | 'Content-Type': 'application/json'
18 | },
19 | image:imageBase64,
20 | image_type:"BASE64",
21 | face_field:"age,beauty,face_shape,gender,glasses,facetype"
22 | });
23 |
24 | var html = res.body.string();
25 | log(html)
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/乱七八糟/sample/界面控件/下拉菜单.js:
--------------------------------------------------------------------------------
1 | "ui";
2 |
3 | ui.layout(
4 |
5 |
6 | 下拉菜单
7 |
8 |
9 |
10 | 对话框菜单
11 |
12 |
13 |
14 |
15 |
16 | );
17 |
18 | ui.ok.on("click", ()=>{
19 | var i = ui.sp1.getSelectedItemPosition();
20 | var j = ui.sp2.getSelectedItemPosition();
21 | toast("您的选择是选项" + (i + 1) + "和选项" + (j + 4));
22 | });
23 |
24 | ui.select3.on("click", ()=>{
25 | ui.sp1.setSelection(2);
26 | });
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/马冬梅.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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/获取通讯录.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 | }
23 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/小游戏/坦克大战游戏/js/num.js:
--------------------------------------------------------------------------------
1 | var Num = function(context) {
2 | this.ctx = context;
3 | this.size = 14;
4 |
5 | this.draw = function(num, x, y) {
6 | var tempX = x;
7 | var tempY = y;
8 | var tempNumArray = [];
9 | if (num == 0) {
10 | tempNumArray.push(0);
11 | } else {
12 | while (num > 0) {
13 | tempNumArray.push(num % 10);
14 | num = parseInt(num / 10);
15 | }
16 | }
17 | for (var i = tempNumArray.length - 1; i >= 0; i--) {
18 | tempX = x + (tempNumArray.length - i - 1) * this.size;
19 | this.ctx.drawImage(RESOURCE_IMAGE, POS["num"][0] + tempNumArray[i] * 14, POS["num"][1], this.size, this.size, tempX, tempY, this.size, this.size);
20 |
21 | }
22 | };
23 |
24 | };
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/悬浮窗下拉框.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);
--------------------------------------------------------------------------------
/乱七八糟/sample/应用/应用工具.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 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/百度人脸识别.js:
--------------------------------------------------------------------------------
1 |
2 | requestUrl="https://aip.baidubce.com/rest/2.0/face/v3/detect"
3 | accessToken = '24.a51d52060f4039b9d958f85e5561004a.2592000.1537688970.282335-11544833'
4 | requestUrl = requestUrl + "?access_token=" + accessToken
5 |
6 | imgFile="/storage/emulated/0/QQBrowser/图片收藏/8669ee1e1cc627171136ce321cf98bad.jpg"
7 | function img64(imgFile){
8 | let img=images.read(imgFile)
9 | let img64=images.toBase64(img)
10 | return img64
11 | }
12 | imageBase64=img64(imgFile)
13 |
14 | console.show();
15 | var res = http.post(requestUrl, {
16 | headers: {
17 | 'Content-Type': 'application/json'
18 | },
19 | image:imageBase64,
20 | image_type:"BASE64",
21 | face_field:"age,beauty,face_shape,gender,glasses,facetype"
22 | });
23 |
24 | var html = res.body.string();
25 | log(html)
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/在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 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/手机号码归属地查询238.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 | }
--------------------------------------------------------------------------------
/查询控件.js:
--------------------------------------------------------------------------------
1 | let debugWidget = function( widget, flag ){
2 | flag = flag != null ? flag : 0
3 | if( widget ){
4 | let prefix = ""
5 | for (let idx = 0; idx < flag; idx++) {
6 | prefix = prefix + " "
7 | }
8 | log( " " + prefix + flag + " " + widget.bounds() + " " + widget.id() + " " + widget.className() + " - " + widget.text() + " - " + widget.desc() + " - " + widget.checked() + " - " + widget.selected() + " - " + widget.clickable() + " - " + widget.visibleToUser() )
9 | if(widget.childCount()){
10 | log( prefix + " " + " \\" + widget.childCount() )
11 | widget.children().forEach(child => {
12 | debugWidget( child, flag+1 )
13 | });
14 | }
15 | }
16 | }
17 |
18 | debugWidget( classNameStartsWith("android").findOne(1000) )
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/微信朋友圈分享256.js:
--------------------------------------------------------------------------------
1 | //23333
2 | importClass(android.content.ComponentName);
3 | importClass(android.net.Uri);
4 | intent = new Intent();
5 | path = files.getSdcardPath() + "/haha.png";
6 | intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
7 | intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
8 | var uri = android.support.v4.content.FileProvider.getUriForFile(context,
9 | "org.autojs.autojs.fileprovider", new java.io.File(files.path(path)));
10 |
11 | comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");
12 | intent.setComponent(comp);
13 | intent.setAction("android.intent.action.SEND");
14 | intent.setType("image/*");
15 | //intent.putExtra(Intent.EXTRA_TEXT, "我是文字");
16 | intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
17 | intent.putExtra(Intent.EXTRA_STREAM, uri);
18 | context.startActivity(intent);
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/停止给定名字脚本StopEngine161.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
4 |
5 |
6 |
7 |
8 | )
9 | var jsFiles = getJsFile()
10 | var jsFileObjs = []
11 | jsFiles.map(
12 | (fileName) => {
13 | jsFileObjs.push({
14 | fileName: fileName
15 | })
16 | }
17 | )
18 | var listView = ui.jsFiles
19 | listView.setDataSource(jsFileObjs)
20 | listView.on("item_click", function (item, i, itemView, listView) {
21 | var info = itemView.fileName.text()
22 | toastLog(info)
23 | });
24 |
25 | function getJsFile() {
26 | var dir = "/sdcard/脚本/";
27 | var jsFiles = files.listDir(dir, function (name) {
28 | return name.endsWith(".js") && files.isFile(files.join(dir, name));
29 | });
30 | return jsFiles
31 | }
32 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/webView填充表单.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 | var settings = ui.a.getSettings()
8 | settings.setJavaScriptEnabled(true);
9 | var url = "https://www.baidu.com/"
10 | ui.a.loadUrl(url);
11 | var 要百度的内容 = '谁是世界上最美的女人'
12 | var 百度搜索框id = 'index-kw'
13 | var js = "javascript:document.getElementById('" + 百度搜索框id + "').value = '" + 要百度的内容 + "';";
14 | var setIntervalId;
15 | setIntervalId = setInterval(() => {
16 | var P = ui.a.getProgress();
17 | log(P)
18 | if (P == 10) {
19 | setTimeout(
20 | function () {
21 | ui.a.evaluateJavascript(js, new android.webkit.ValueCallback(
22 | function onReceiveValue(s) {
23 | log(s)
24 | }
25 | ))
26 | }, 1000
27 | )
28 | }
29 | clearInterval(setIntervalId)
30 | }, 100);
31 |
--------------------------------------------------------------------------------
/乱七八糟/sample/事件与按键、触摸监听/按键监听.js:
--------------------------------------------------------------------------------
1 | "auto";
2 |
3 | events.observeKey();
4 |
5 | var keyNames = {
6 | "KEYCODE_VOLUME_UP": "音量上键",
7 | "KEYCODE_VOLUME_DOWN": "音量下键",
8 | "KEYCODE_HOME": "Home键",
9 | "KEYCODE_BACK": "返回键",
10 | "KEYCODE_MENU": "菜单键",
11 | "KEYCODE_POWER": "电源键",
12 | };
13 |
14 | events.on("key", function(code, event){
15 | var keyName = getKeyName(code, event);
16 | if(event.getAction() == event.ACTION_DOWN){
17 | toast(keyName + "被按下");
18 | }else if(event.getAction() == event.ACTION_UP){
19 | toast(keyName + "弹起");
20 | }
21 | });
22 |
23 | loop();
24 |
25 |
26 |
27 | function getKeyName(code, event){
28 | var keyCodeStr = event.keyCodeToString(code);
29 | var keyName = keyNames[keyCodeStr];
30 | if(!keyName){
31 | return keyCodeStr;
32 | }
33 | return keyName;
34 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/动态显示隐藏布局156.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
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 | });
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/焦点.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 |
6 | );
7 |
8 | window.exitOnClose();
9 |
10 | toast("长按确定键可调整位置");
11 |
12 | window.input.on("key", function(keyCode, event){
13 | if(event.getAction() == event.ACTION_DOWN && keyCode == keys.back){
14 | window.disableFocus();
15 | event.consumed = true;
16 | }
17 | });
18 |
19 | window.input.on("touch_down", ()=>{
20 | window.requestFocus();
21 | window.input.requestFocus();
22 | });
23 |
24 | window.ok.on("click", ()=>{
25 | toast("傻瓜! " + window.input.text());
26 | window.disableFocus();
27 | });
28 |
29 | window.ok.on("long_click", ()=>{
30 | window.setAdjustEnabled(!window.isAdjustEnabled());
31 | });
32 |
33 | setInterval(()=>{}, 1000);
34 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手势/小米锁屏解锁.js:
--------------------------------------------------------------------------------
1 | var password='8888'
2 | if(!device.isScreenOn()){
3 | device.wakeUpIfNeeded()
4 | }
5 | sleep(2000)
6 | 小米锁屏上滑动作()
7 | sleep(300)
8 | for(var i=0;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 | });
34 |
--------------------------------------------------------------------------------
/乱七八糟/sample/悬浮窗/悬浮窗运行脚本按钮简单版.js:
--------------------------------------------------------------------------------
1 | var path = "/sdcard/脚本/test.js";
2 | if(!files.exists(path)){
3 | toast("脚本文件不存在: " + path);
4 | exit();
5 | }
6 | var window = floaty.window(
7 |
8 |
9 |
10 | );
11 |
12 | window.exitOnClose();
13 |
14 | var execution = null;
15 |
16 | window.action.click(()=>{
17 | if(window.action.getText() == '开始运行'){
18 | execution = engines.execScriptFile(path);
19 | window.action.setText('停止运行');
20 | }else{
21 | if(execution){
22 | execution.getEngine().forceStop();
23 | }
24 | window.action.setText('开始运行');
25 | }
26 | });
27 |
28 | window.action.longClick(()=>{
29 | window.setAdjustEnabled(!window.isAdjustEnabled());
30 | return true;
31 | });
32 |
33 | setInterval(()=>{}, 1000);
34 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/webView输入关键词搜索.js:
--------------------------------------------------------------------------------
1 | 'ui';
2 | ui.layout(
3 |
4 |
5 |
6 | )
7 | webView=ui.a
8 | var settings = webView.getSettings()
9 | // settings.setJavaScriptEnabled(true);
10 | settings.setJavaScriptCanOpenWindowsAutomatically(true);
11 | var url = "https://www.baidu.com/"
12 | webView.loadUrl(url);
13 | var 要百度的内容 = '谁是世界上最美的女人'
14 | var 百度搜索输入框id = 'index-kw'
15 | var js = "javascript:document.getElementById('" + 百度搜索输入框id + "').value = '" + 要百度的内容 + "';";
16 | setTimeout(
17 | function () {
18 | ui.a.evaluateJavascript(";"+inputContentThenSearch.toString() + ";inputContentThenSearch();", function(s) {
19 | log(s)
20 | })
21 | }, 1000)
22 | function inputContentThenSearch(){
23 | document.getElementById('index-kw').value='谁是世界上最美的女人'
24 | document.getElementById('index-bn').click()
25 | return '点击了搜索按钮'
26 | }
27 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/小米锁屏解锁密码8888136.js:
--------------------------------------------------------------------------------
1 |
2 | var password='8888'
3 | if(!device.isScreenOn()){
4 | device.wakeUpIfNeeded()
5 | }
6 | sleep(2000)
7 | 小米锁屏上滑动作()
8 | sleep(300)
9 | for(var i=0;i
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | )
19 | var todoList = [{
20 | content: '111111'
21 | },
22 | {
23 | content: '222222'
24 | },
25 | {
26 | content: '33333333'
27 | },
28 | {
29 | content: '444444444'
30 | },
31 | {
32 | content: '555555'
33 | }
34 | ]
35 | for(var i=0;i
7 |
8 |
9 | );
10 | //画笔
11 | var paint = new Paint();
12 | //画笔颜色
13 | paint.setARGB(255,0xd5,0,0);
14 |
15 | var Path = new android.graphics.Path;
16 |
17 | for (var t = -Math.PI; t <= Math.PI; t = t + 0.01) {
18 | //坐标系的 x,y
19 | var x = 16 * Math.pow(Math.sin(t), 3);
20 | var y = 13 * Math.cos(t) - 5 * Math.cos(t * 2) - 2 * Math.cos(t * 3) - Math.cos(t * 4);
21 | //增大心
22 | x = x * 16;
23 | y = -y * 16;
24 | //算出对于手机机的坐标 手机左上角是0,0
25 | Path.lineTo(x, y);
26 | };
27 |
28 | Path.close();
29 |
30 | ui.board.on("draw", function(canvas) {
31 | var w = canvas.getWidth() / 2;
32 | var h = canvas.getHeight() / 2;
33 | canvas.translate(w, h);
34 | canvas.drawPath(Path, paint);
35 | });
36 |
--------------------------------------------------------------------------------
/乱七八糟/sample/悬浮窗/悬浮窗输入框.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 |
6 | );
7 |
8 | window.exitOnClose();
9 |
10 | toast("长按确定键可调整位置");
11 |
12 | window.input.on("key", function(keyCode, event){
13 | if(event.getAction() == event.ACTION_DOWN && keyCode == keys.back){
14 | window.disableFocus();
15 | event.consumed = true;
16 | }
17 | });
18 |
19 | window.input.on("touch_down", ()=>{
20 | window.requestFocus();
21 | window.input.requestFocus();
22 | });
23 |
24 | window.ok.on("click", ()=>{
25 | toast("傻瓜! " + window.input.text());
26 | window.disableFocus();
27 | });
28 |
29 | window.ok.on("long_click", ()=>{
30 | window.setAdjustEnabled(!window.isAdjustEnabled());
31 | });
32 |
33 | setInterval(()=>{}, 1000);
34 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/第三方API接口/百度文字识别140.js:
--------------------------------------------------------------------------------
1 | //截图当前屏幕并识别截图中的文字
2 |
3 | auto()
4 | //请求截图
5 | if(!requestScreenCapture()){
6 | toast("请求截图失败");
7 | exit();
8 | }
9 |
10 |
11 | log("识别开始")
12 | requestUrl="https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
13 | accessToken = '24.45e9e852ec0cc0f41a268e11ce7b2f3f.2592000.1535634423.282335-10386148'
14 | requestUrl = requestUrl + "?access_token=" + accessToken
15 | imgFile="/sdcard/test.jpg"
16 | function img64(imgFile){
17 | var img = captureScreen();
18 | let img64=images.toBase64(img)
19 | return img64
20 | }
21 | imageBase64=img64(imgFile)
22 | imageBase64=encodeURI(imageBase64)
23 | console.show();
24 | var res = http.post(requestUrl, {
25 | headers: {
26 | 'Content-Type': 'application/x-www-form-urlencoded'
27 | },
28 | image:imageBase64,
29 | image_type:"BASE64",
30 | });
31 | var html = res.body.string();
32 | log(html)
33 | log("识别结束")
34 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/UI和悬浮窗一起使用的完整栗子/悬浮窗输入框.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 |
6 | );
7 |
8 | window.exitOnClose();
9 |
10 | toast("长按确定键可调整位置");
11 |
12 | window.input.on("key", function(keyCode, event){
13 | log('keyCode=',keyCode)
14 | if(event.getAction() == event.ACTION_DOWN && keyCode == keys.back){
15 | window.disableFocus();
16 | event.consumed = true;
17 | }
18 | });
19 |
20 | window.input.on("touch_down", ()=>{
21 | window.requestFocus();
22 | window.input.requestFocus();
23 | });
24 |
25 | window.ok.on("click", ()=>{
26 | toast("傻瓜! " + window.input.text());
27 | window.disableFocus();
28 | });
29 |
30 | window.ok.on("long_click", ()=>{
31 | window.setAdjustEnabled(!window.isAdjustEnabled());
32 | });
33 |
34 | setInterval(()=>{}, 1000);
35 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/坐标/两点之间的坐标.js:
--------------------------------------------------------------------------------
1 | var x1 = 100
2 | var y1 = 300
3 | var x2 = 100
4 | var y2 = 200
5 | var xy1 = [x1, y1]
6 | var xy2 = [x2, y2]
7 | 输入两个坐标之间的坐标集合(xy1, xy2)
8 |
9 | function 输入两个坐标之间的坐标集合(xy1, xy2) {
10 | var x1 = xy1[0]
11 | var y1 = xy1[1]
12 | var x2 = xy2[0]
13 | var y2 = xy2[1]
14 | var xyArr = []
15 | var distance = Math.pow(((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)), 0.5);
16 | log('distance=', distance)
17 | if (distance == 0) {
18 | log([
19 | [xy1]
20 | ])
21 | return [
22 | [xy1]
23 | ]
24 | }
25 | var xUnit = (x2 - x1) / distance
26 | var yUnit = (y2 - y1) / distance
27 | log('xUnit=', xUnit)
28 | log('yUnit=', yUnit)
29 | for (var i = 0; i <= distance; i++) {
30 | var xTemp = xUnit * i
31 | var yTemp = yUnit * i
32 | xyArr.push([Math.floor(xTemp + x1), Math.floor(yTemp + y1)])
33 | }
34 | log(xyArr)
35 | return xyArr
36 | }
37 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/悬浮窗/UI和悬浮窗一起使用的完整栗子/悬浮窗输入框.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 |
6 | );
7 |
8 | window.exitOnClose();
9 |
10 | toast("长按确定键可调整位置");
11 |
12 | window.input.on("key", function(keyCode, event){
13 | log('keyCode=',keyCode)
14 | if(event.getAction() == event.ACTION_DOWN && keyCode == keys.back){
15 | window.disableFocus();
16 | event.consumed = true;
17 | }
18 | });
19 |
20 | window.input.on("touch_down", ()=>{
21 | window.requestFocus();
22 | window.input.requestFocus();
23 | });
24 |
25 | window.ok.on("click", ()=>{
26 | toast("傻瓜! " + window.input.text());
27 | window.disableFocus();
28 | });
29 |
30 | window.ok.on("long_click", ()=>{
31 | window.setAdjustEnabled(!window.isAdjustEnabled());
32 | });
33 |
34 | setInterval(()=>{}, 1000);
35 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/activity和context.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | toastLog(activity
3 | .getWindow()
4 | .getDecorView()
5 | .getChildAt(0)
6 | .getChildCount()
7 | )
8 |
9 | 窗口管理器
10 | wManager = context.getSystemService(
11 | context.WINDOW_SERVICE);
12 |
13 | 高级输入法
14 | var window = floaty.window(
15 |
16 | );
17 |
18 | for (var i = 0; i < 50; i++) {
19 | ui.run(() => {
20 | imm = window.text.getContext().getSystemService(context.INPUT_METHOD_SERVICE);
21 | imm.toggleSoftInput(0, android.view.inputmethod.InputMethodManager.SHOW_FORCED);
22 | });
23 | sleep(100);
24 | };
25 |
26 | 调整手机亮度
27 | var w = floaty.rawWindow(
28 |
29 | );
30 | w.setSize(-1, -1);
31 | w.setTouchable(false);
32 | log(w.main.getRootView().getLayoutParams().screenBrightness=0);
33 | setTimeout(()=>{ w.close(); }, 4000);
--------------------------------------------------------------------------------
/乱七八糟/Demo/白酒煮饭/[QQ] 为指定好用发送固定金额的红包..js:
--------------------------------------------------------------------------------
1 | auto.waitFor();
2 | //对方QQ号码
3 | var QNum = '';
4 | //红包金额
5 | var Money = '';
6 | //自己的支付密码
7 | var PaymentPass = '';
8 |
9 | var i = app.intent({
10 | action: "VIEW",
11 | data: "mqqwpa://im/chat?chat_type=wpa&uin="+QNum
12 | });
13 | app.startActivity(i);
14 |
15 | waitForActivity('com.tencent.mobileqq.activity.SplashActivity');
16 | sleep(2000);
17 | //判断是否弹出键盘
18 | var inputBar_Y = id('inputBar').findOne().bounds().centerY()
19 | if (inputBar_Y > (device.height/5)*4) {
20 | id('listView1').findOne().parent().child(6).child(4).click();
21 | } else {
22 | id('listView1').findOne().parent().child(5).child(4).click();
23 | }
24 |
25 | text('普通红包').waitFor();
26 | while(!click('普通红包'));
27 | text('塞钱').waitFor();
28 | text('输入金额').setText(Money);
29 | sleep(200);
30 | textStartsWith('塞钱').findOne().click();
31 | text('找回密码').waitFor();
32 | desc('支付密码输入框').setText(PaymentPass);
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/WebView简单示例安卓调用js428.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | //importClass(android.view.View.OnClickListener);
3 | importClass(java.lang.Runnable);
4 | //importClass(android.os.Build);
5 | //这是一个通过webView控件简单调用js网页代码的示例
6 |
7 | ui.layout(
8 |
9 |
10 |
11 |
12 | );
13 | //importClass(android.webkit.JavascriptInterface);
14 | //importClass(android.webkit.WebViewClient);
15 | webView = ui.findById("webview");
16 |
17 | button = ui.findById("button");
18 | button.setText("确定");
19 | button.setOnClickListener({
20 | onClick: function(v) {
21 | webView.post(new Runnable({
22 | run: function() {
23 | // 调用javascript的callJS()方法
24 | webView.loadUrl("javascript:callJS()");
25 | }
26 | }));
27 | }
28 | });
29 |
30 | html = files.path("./html.html");
31 | webView.loadUrl("file://" + html);
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/保存imgView加载的图片.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 作者: 家
3 | * QQ: 203118908
4 | * 功能: 保存imgView加载的图片
5 | */
6 | 'ui';
7 | ui.layout(
8 |
9 |
10 |
11 |
12 |
13 | )
14 | ui.post(
15 | function () {
16 | var imgView=ui.img
17 | var myBitmap=createBitmap(imgView)
18 | var imgPath=saveBitmap(myBitmap)
19 | log(imgPath)
20 | }, 1000
21 | )
22 | function createBitmap(view) {
23 | view.setDrawingCacheEnabled(true);
24 | view.buildDrawingCache();
25 | var bitmap = view.getDrawingCache();
26 | return bitmap;
27 | }
28 | function saveBitmap(bitmap) {
29 | var imgPath="/sdcard/1.png"
30 | var canvas = new Canvas(bitmap);
31 | var myimg = canvas.toImage();
32 | log('myimg=')
33 | log(myimg)
34 | images.save(myimg, imgPath );
35 | app.viewFile(imgPath);
36 | return imgPath
37 | }
38 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/获取UI界面控件宽度和高度.js:
--------------------------------------------------------------------------------
1 |
2 | 'ui';
3 | var marginSize = '100'
4 | var myMargin = marginSize + ' ' + marginSize + ' ' + marginSize + ' ' + marginSize
5 | ui.layout(
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | )
14 | vto = ui.board.getViewTreeObserver();
15 | var hasMeasured = false;
16 | vto.addOnPreDrawListener(new android.view.ViewTreeObserver.OnPreDrawListener({
17 | onPreDraw: function () {
18 | if (hasMeasured == false) {
19 | // left1 = ui.board.getMeasuredLeft();
20 | height1 = ui.board.getMeasuredHeight();
21 | width1 = ui.board.getMeasuredWidth();
22 | //获取到宽度和高度后,可用于计算
23 | // log("left1::" + left1);
24 | log("height::" + height1);
25 | log("width::" + width1);
26 | hasMeasured = true;
27 | }
28 | return true;
29 | }
30 | }));
31 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/线段上的所有点.js:
--------------------------------------------------------------------------------
1 | log(getLinePoints([0.9,1,5,5.5]));
2 |
3 |
4 |
5 |
6 | function getLinePoints(xyAry) {
7 | //xyary=[x1,y1,x2,y2];
8 | let x1 = xyAry[0];
9 | let y1 = xyAry[1];
10 | let x2 = xyAry[2];
11 | let y2 = xyAry[3];
12 | //kx+b=y;求k,b
13 | let k = (y2 - y1) / (x2 - x1);
14 | let b = y1 - k * x1;
15 | //~~~~~~~~~~~~
16 | let x1_ = Math.floor(x1);
17 | let x2_ = Math.floor(x2);
18 | let fx = (x2_ - x1_) / Math.abs(x2_ - x1_);
19 | let pointsAry = new Array;
20 | for (let ix = x1_; ix != x2_+fx; ix += fx) {
21 | let iy = Math.floor(k * ix + b);
22 | if (pointsAry.length) {
23 | if (pointsAry[pointsAry.length - 2] != ix - 1 || pointsAry[pointsAry.length - 1] != iy) {
24 | pointsAry.push(ix - 1, iy);
25 | };
26 | };
27 | pointsAry.push(ix, iy);
28 | };
29 | return pointsAry;
30 | };
31 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/数组/大数组包含小数组.js:
--------------------------------------------------------------------------------
1 | function bigArrContainsSmallArr(bigArr, smallArr) {
2 | //对于重复的元素采用计数的方式对比
3 | var bigArrObj = {}
4 | var smallArrObj = {}
5 | for (let i = 0; i < bigArr.length; i++) {
6 | var has = bigArrObj.hasOwnProperty(bigArr[i])
7 | if (has) {
8 | bigArrObj[bigArr[i]]++;
9 | } else {
10 | bigArrObj[bigArr[i]] = 1
11 | }
12 | }
13 | for (let i = 0; i < smallArr.length; i++) {
14 | var has = smallArrObj.hasOwnProperty(smallArr[i])
15 | if (has) {
16 | smallArrObj[smallArr[i]]++;
17 | } else {
18 | smallArrObj[smallArr[i]] = 1
19 | }
20 | }
21 | for (var k in smallArrObj) {
22 | if (bigArrObj.hasOwnProperty(k) && bigArrObj[k] >= smallArrObj[k]) {} else {
23 | return false
24 | }
25 | }
26 | return true
27 | }
28 |
29 | var bigArr=[1,2,3,4,11]
30 | var smallArr=[1,1,2,3,4,11]
31 | var r=bigArrContainsSmallArr(bigArr, smallArr)
32 | log(r)
33 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/http/格式化headers.js:
--------------------------------------------------------------------------------
1 | // var str = files.read('./data.js')
2 | var str = getClip()
3 | log("\n\n\n"+str + "\n\n\n");
4 | var array = str.split("\n");
5 | var 非空行=[]
6 | var json = {};
7 | array.map(
8 | (line)=>{
9 | if(line.length>3 && !(/^(GET|POST).*HTTP\//.test(line))){
10 | 非空行.push(line)
11 | }
12 | if(/^(GET|POST).*HTTP\//.test(line)){
13 | line=line.trim()
14 | var method=line.match(/[^ ]*(?= )/)[0]
15 | var url=line.match(/\/[^ ]*(?= )/)[0]
16 | log(method)
17 | json.method=method
18 | json.url=url
19 | }
20 | }
21 | )
22 | log(非空行)
23 | for (let i = 0; i < 非空行.length; i++) {
24 | var kvstr = 非空行[i].split(":");
25 | var key = kvstr[0].trim();
26 | var value = kvstr[1].trim();
27 | json[key] = value;
28 | }
29 | log("\n\n\n==========================================================================================\n\n\n");
30 | log("\n\n\n",json, "\n\n\n");
31 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/帧布局139.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
7 |
8 |
12 |
16 |
17 |
18 |
22 |
23 |
24 |
28 |
29 |
30 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | );
42 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/表格布局283.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
9 |
10 |
11 |
12 |
16 |
20 |
21 |
22 |
23 |
27 |
32 |
33 |
34 |
35 |
40 |
41 |
42 |
43 |
44 | )
45 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/铃声.js:
--------------------------------------------------------------------------------
1 | function 铃声(铃声类型, 是否循环播放, 播放时长) {
2 | var 播放时长 = 播放时长 || 10000
3 | var 是否循环播放 = 是否循环播放 || false
4 | if (是否循环播放) {
5 | 播放时长 = 666 * 1000
6 | }
7 | var 铃声选择结果 = android.media.RingtoneManager.TYPE_NOTIFICATION
8 | switch (铃声类型) {
9 | case 0:
10 | 铃声选择结果 = android.media.RingtoneManager.TYPE_RINGTONE
11 | break;
12 | case 1:
13 | 铃声选择结果 = android.media.RingtoneManager.TYPE_ALARM
14 | break;
15 | case 2:
16 | 铃声选择结果 = android.media.RingtoneManager.TYPE_ALL
17 | break;
18 | default:
19 | break;
20 | }
21 | var mp = new android.media.MediaPlayer();
22 | mp.setDataSource(context, android.media.RingtoneManager.getDefaultUri(铃声选择结果));
23 | if (是否循环播放) mp.setLooping(true);
24 | mp.prepare();
25 | mp.start();
26 | threads.start(function () {
27 | sleep(播放时长)
28 | if (mp.isPlaying()) {
29 | mp.stop()
30 | }
31 | });
32 | return mp;
33 | }
34 | 铃声(0)
35 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/加密/autojs和nodejs的AES_CBC加解密Demo/nodejs_AES_CBC加解密.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 作者: 家
3 | * QQ: 203118908
4 | * 功能: nodejs_AES_CBC加解密,autojs_AES_CBC加解密
5 | */
6 | const crypto = require('crypto');
7 | var iv = new Buffer('0000000000000000'); // 16位
8 | var encrypt = function (data, key) {
9 | var decodeKey = crypto.createHash('sha256').update(key, 'utf-8').digest();
10 | var cipher = crypto.createCipheriv('aes-256-cbc', decodeKey, iv);
11 | return cipher.update(data, 'utf8', 'base64') + cipher.final('base64');
12 | };
13 | var decrypt = function (data, key) {
14 | var encodeKey = crypto.createHash('sha256').update(key, 'utf-8').digest();
15 | var cipher = crypto.createDecipheriv('aes-256-cbc', encodeKey, iv);
16 | return cipher.update(data, 'base64', 'utf8') + cipher.final('utf8');
17 | };
18 | var data = '我是要加密的数据'
19 | var key = 'key';
20 | var cipher = encrypt(data, key);
21 | var decipher = decrypt(cipher, key);
22 | console.log(cipher);
23 | console.log(decipher);
24 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/编辑距离py2js318.js:
--------------------------------------------------------------------------------
1 | function minEditDist(sm,sn){
2 | var m=sm.length+1
3 | var n=sn.length+1
4 | var matrix = new Array();
5 | for ( var i = 0; i < m; i++) {
6 | matrix[i] = new Array();
7 | for ( var j = 0; j < n; j++) {
8 | matrix[i][j] = 0;
9 | }
10 | }
11 | matrix[0][0]=0
12 | for(let i=1;i
3 |
4 |
5 |
6 | );
7 |
8 | window.setTouchable(false);
9 | window.setPosition(100,100);
10 |
11 |
12 |
13 | setInterval(() => {
14 | ui.run(() => {
15 | window.text.setText(String(getTime()));
16 | });
17 |
18 | }, 50);
19 |
20 | function getTime() {
21 | var date = new Date();
22 | var year = date.getFullYear();
23 | var month = TT(date.getMonth() + 1);
24 | var day = TT(date.getDate());
25 | var hour = TT(date.getHours());
26 | var minute = TT(date.getMinutes());
27 | var second = TT(date.getSeconds());
28 | var millisecond = TT(date.getMilliseconds());
29 | return year + "/" + month + "/" + day + "--" + hour + ":" + minute + ":" + second;
30 |
31 | function TT(s) {
32 | if (s < 10) {
33 | s = "0" + s;
34 | };
35 | return s;
36 | };
37 | };
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/全部短信获取144.js:
--------------------------------------------------------------------------------
1 | importClass(android.net.Uri);
2 | console.show();
3 | SMS_INBOX = Uri.parse("content://sms/");
4 | 短信=getSmsFromPhone();
5 | for(i in 短信){
6 | log(短信[i]);
7 | }
8 | function getSmsFromPhone() {
9 | var cr = context.getContentResolver();
10 | var projection = [
11 | "_id",
12 | "address",
13 | "person",
14 | "body",
15 | "date",
16 | "type"
17 | ];
18 | var cur = cr.query(SMS_INBOX, projection, null, null, "date desc");//此处报错是因为系统没允许autojs读取短信
19 | if (null == cur) {
20 | log("************cur == null");
21 | return;
22 | }
23 | var i=0;
24 | var sms=[];
25 |
26 | while (cur.moveToNext()) {
27 | sms[i]={
28 | number:cur.getString(cur.getColumnIndex("address")),
29 | name:cur.getString(cur.getColumnIndex("person")),
30 | body:cur.getString(cur.getColumnIndex("body")),
31 | }
32 | i++;
33 | //至此就获得了短信的相关的内容, 以下是把短信加入map中,构建listview,非必要。
34 | }
35 | return sms;
36 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/打手那个枪-1.0.0.1/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets": [],
3 | "build": {
4 | "build_time": 0,
5 | "build_number": 0,
6 | "release": false
7 | },
8 | "encryptLevel": 0,
9 | "useFeatures": [],
10 | "launchConfig": {
11 | "displaySplash": true,
12 | "hideLogs": false,
13 | "splashText": "Powered by Auto.js Pro",
14 | "stableMode": false
15 | },
16 | "mainScriptFile": "main.js",
17 | "name": "打手那个枪",
18 | "optimization": {
19 | "removeOpenCv": false,
20 | "unusedResources": false
21 | },
22 | "packageName": "com.shou.qiang",
23 | "publish": {
24 | "category": "其他",
25 | "details": "战斗吧!骚年",
26 | "maxAutoJsVersion": -1,
27 | "maxProVersion": 7009999,
28 | "minAutoJsVersion": -1,
29 | "minProVersion": 7000000,
30 | "minSdkVersion": 2,
31 | "permissions": [],
32 | "summary": "摇一摇",
33 | "tags": []
34 | },
35 | "scripts": {},
36 | "versionCode": 1,
37 | "versionName": "1.0.0"
38 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/刮刮卡之佐罗-1.0.0.1/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets": [],
3 | "build": {
4 | "build_time": 0,
5 | "build_number": 0,
6 | "release": false
7 | },
8 | "encryptLevel": 0,
9 | "useFeatures": [],
10 | "launchConfig": {
11 | "displaySplash": true,
12 | "hideLogs": false,
13 | "splashText": "Powered by Auto.js Pro",
14 | "stableMode": false
15 | },
16 | "mainScriptFile": "main.js",
17 | "name": "刮刮卡之佐罗",
18 | "optimization": {
19 | "removeOpenCv": false,
20 | "unusedResources": false
21 | },
22 | "packageName": "com.zuo.luo",
23 | "publish": {
24 | "category": "其他",
25 | "details": "DST OUT模式",
26 | "maxAutoJsVersion": -1,
27 | "maxProVersion": 7009999,
28 | "minAutoJsVersion": -1,
29 | "minProVersion": 7000000,
30 | "minSdkVersion": 2,
31 | "permissions": [],
32 | "summary": "模拟刮刮卡效果",
33 | "tags": []
34 | },
35 | "scripts": {},
36 | "versionCode": 1,
37 | "versionName": "1.0.0"
38 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/手机/添加联系人.js:
--------------------------------------------------------------------------------
1 | var it = new Intent(Intent.ACTION_INSERT, android.net.Uri.withAppendedPath(
2 | app.parseUri("content://com.android.contacts"), "contacts"))
3 | ;
4 | it.setType("vnd.android.cursor.dir/person");
5 |
6 | // 联系人姓名
7 | it.putExtra(android.provider.ContactsContract.Intents.Insert.NAME, '陈真');
8 |
9 | // 手机号码
10 | it.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE,
11 | '13570334567');
12 | // 单位电话
13 | it.putExtra(
14 | android.provider.ContactsContract.Intents.Insert.SECONDARY_PHONE,
15 | '13570334567');
16 | // 住宅电话
17 | it.putExtra(
18 | android.provider.ContactsContract.Intents.Insert.TERTIARY_PHONE,
19 | '13570334567');
20 |
21 | app.startActivity(it);
22 |
23 |
24 | sleep(2000);
25 | var descbtn = desc('确定').findOne(2000);
26 | if(descbtn!=null)
27 | {
28 | toast('要保存 了');
29 | descbtn.click();
30 | sleep(1000);
31 | back();
32 |
33 | }
34 | else{
35 | toast('找不到确定按钮');
36 | }
37 |
38 |
39 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/ui显示日志.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 |
7 | );
8 |
9 | ui.console.setConsole(runtime.console);
10 | // 设置控制台字体颜色
11 | let c = new android.util.SparseArray();
12 | let Log = android.util.Log;
13 | c.put(Log.VERBOSE, new java.lang.Integer(colors.parseColor("#dfc0c0c0")));
14 | c.put(Log.DEBUG, new java.lang.Integer(colors.parseColor("#cc000000")));
15 | c.put(Log.INFO, new java.lang.Integer(colors.parseColor("#ff64dd17")));
16 | c.put(Log.WARN, new java.lang.Integer(colors.parseColor("#ff2962ff")));
17 | c.put(Log.ERROR, new java.lang.Integer(colors.parseColor("#ffd50000")));
18 | c.put(Log.ASSERT, new java.lang.Integer(colors.parseColor("#ffff534e")));
19 | ui.console.setColors(c);
20 |
21 | // 别问我这些API哪来的,能不能完善文档?这些都是Auto.js内部的API,因此不提供文档。如有更改,恕不另行通知。后续可能会提供正式支持。
22 |
23 | setInterval(()=>{
24 | console.log(1);
25 | console.info(2);
26 | }, 500);
27 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/脚本引擎实现顺序执行-1.0.0.1/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets": [],
3 | "build": {
4 | "build_number": 0,
5 | "build_time": 0,
6 | "release": false
7 | },
8 | "encryptLevel": 0,
9 | "useFeatures": [],
10 | "launchConfig": {
11 | "displaySplash": true,
12 | "hideLogs": false,
13 | "splashText": "Powered by Auto.js Pro",
14 | "stableMode": false
15 | },
16 | "mainScriptFile": "main.js",
17 | "name": "脚本引擎实现顺序执行",
18 | "optimization": {
19 | "removeOpenCv": false,
20 | "unusedResources": false
21 | },
22 | "packageName": "muling.engines",
23 | "publish": {
24 | "category": "其他",
25 | "details": "null",
26 | "maxAutoJsVersion": -1,
27 | "maxProVersion": 0,
28 | "minAutoJsVersion": -1,
29 | "minProVersion": 0,
30 | "minSdkVersion": 2,
31 | "permissions": [],
32 | "summary": "简单实现脚本引擎顺序控制子脚本运行",
33 | "tags": []
34 | },
35 | "scripts": {},
36 | "versionCode": 1,
37 | "versionName": "1.0.0"
38 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/录屏简单实现-1.0.0.1/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets": [],
3 | "build": {
4 | "build_number": 0,
5 | "build_time": 0,
6 | "release": false
7 | },
8 | "encryptLevel": 0,
9 | "useFeatures": [],
10 | "launchConfig": {
11 | "displaySplash": true,
12 | "hideLogs": false,
13 | "splashText": "Powered by Auto.js Pro",
14 | "stableMode": true
15 | },
16 | "mainScriptFile": "main.js",
17 | "name": "录屏简单实现",
18 | "optimization": {
19 | "removeOpenCv": false,
20 | "unusedResources": false
21 | },
22 | "packageName": "org.wumin.screen",
23 | "publish": {
24 | "category": "实用工具",
25 | "details": "这是一个简单的录屏功能实现",
26 | "maxAutoJsVersion": -1,
27 | "maxProVersion": 7009999,
28 | "minAutoJsVersion": -1,
29 | "minProVersion": 7000000,
30 | "minSdkVersion": 2,
31 | "permissions": [],
32 | "summary": "简单录屏功能实现",
33 | "tags": []
34 | },
35 | "scripts": {},
36 | "versionCode": 1,
37 | "versionName": "1.0.0"
38 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/更新UI悬浮窗样例-1.0.0.1/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets": [],
3 | "build": {
4 | "build_time": 0,
5 | "build_number": 0,
6 | "release": false
7 | },
8 | "encryptLevel": 0,
9 | "useFeatures": [],
10 | "launchConfig": {
11 | "displaySplash": true,
12 | "hideLogs": false,
13 | "splashText": "Powered by Auto.js Pro",
14 | "stableMode": false
15 | },
16 | "mainScriptFile": "main.js",
17 | "name": "更新UI悬浮窗样例",
18 | "optimization": {
19 | "removeOpenCv": false,
20 | "unusedResources": false
21 | },
22 | "packageName": "com.example.ui.android",
23 | "publish": {
24 | "category": "实用工具",
25 | "details": "UI+悬浮窗",
26 | "maxAutoJsVersion": -1,
27 | "maxProVersion": 7009999,
28 | "minAutoJsVersion": -1,
29 | "minProVersion": 7000000,
30 | "minSdkVersion": 3,
31 | "permissions": [],
32 | "summary": "版本更新对话弹窗",
33 | "tags": []
34 | },
35 | "scripts": {},
36 | "versionCode": 1,
37 | "versionName": "1.0.0"
38 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/工具箱/music110.js:
--------------------------------------------------------------------------------
1 | function 铃声(铃声类型, 是否循环播放, 播放时长) {
2 | var 铃声类型 = 铃声类型 || 0
3 | var 播放时长 = 播放时长 || 2000
4 | var 是否循环播放 = 是否循环播放 || false
5 | if (是否循环播放) {
6 | 播放时长 = 666 * 1000
7 | }
8 | var 铃声选择结果 = android.media.RingtoneManager.TYPE_NOTIFICATION
9 | switch (铃声类型) {
10 | case 0:
11 | 铃声选择结果 = android.media.RingtoneManager.TYPE_RINGTONE
12 | break;
13 | case 1:
14 | 铃声选择结果 = android.media.RingtoneManager.TYPE_ALARM
15 | break;
16 | case 2:
17 | 铃声选择结果 = android.media.RingtoneManager.TYPE_ALL
18 | break;
19 | default:
20 | break;
21 | }
22 | var mp = new android.media.MediaPlayer();
23 | mp.setDataSource(context, android.media.RingtoneManager.getDefaultUri(铃声选择结果));
24 | if (是否循环播放) mp.setLooping(true);
25 | mp.prepare();
26 | mp.start();
27 | threads.start(function () {
28 | sleep(播放时长)
29 | if (mp.isPlaying()) {
30 | mp.stop()
31 | }
32 | });
33 | return mp;
34 | }
35 | module.exports=铃声
36 |
--------------------------------------------------------------------------------
/乱七八糟/sample/悬浮窗/动态悬浮文字.js:
--------------------------------------------------------------------------------
1 | var window = floaty.window(
2 |
3 |
4 |
5 | );
6 |
7 | window.exitOnClose();
8 |
9 | window.text.click(()=>{
10 | window.setAdjustEnabled(!window.isAdjustEnabled());
11 | });
12 |
13 | setInterval(()=>{
14 | //对控件的操作需要在UI线程中执行
15 | ui.run(function(){
16 | window.text.setText(dynamicText());
17 | });
18 | }, 1000);
19 |
20 | function dynamicText(){
21 | var date = new Date();
22 | var str = util.format("时间: %d:%d:%d\n", date.getHours(), date.getMinutes(), date.getSeconds());
23 | str += util.format("内存使用量: %d%%\n", getMemoryUsage());
24 | str += "当前活动: " + currentActivity() + "\n";
25 | str += "当前包名: " + currentPackage();
26 | return str;
27 | }
28 |
29 | //获取内存使用率
30 | function getMemoryUsage(){
31 | var usage = (100 * device.getAvailMem() / device.getTotalMem());
32 | //保留一位小数
33 | return Math.round(usage * 10) / 10;
34 | }
--------------------------------------------------------------------------------
/乱七八糟/Demo/UI/循环缩放webView.js:
--------------------------------------------------------------------------------
1 | "ui";
2 | ui.layout(
3 |
4 |
5 |
6 |
7 | )
8 | ui.web.loadUrl('https://www.baidu.com')
9 | var mode = [{
10 | w: 100,
11 | h: 150
12 | },
13 | {
14 | w: 300,
15 | h: 450
16 | },
17 | {
18 | w: device.width+"px",
19 | h: device.height+"px"
20 | },
21 | {
22 | w: 900,
23 | h: 1350
24 | }
25 | ]
26 | var num = function () {
27 | var current = 0
28 | return function () {
29 | if (current > mode.length - 1) {
30 | current = 0
31 | }
32 | return current++
33 | }
34 | }()
35 | ui.zoom.click(
36 | function () {
37 | var currentNum = num()
38 | var currentMode = mode[currentNum]
39 | log('currentNum=', currentNum)
40 | ui.run(
41 | function () {
42 | ui.web.attr("width", currentMode.w)
43 | ui.web.attr("height", currentMode.h)
44 | }
45 | )
46 | }
47 | )
48 |
--------------------------------------------------------------------------------
/乱七八糟/Demo/pro商店的脚本/无情的打字机-1.0.0.0/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets": [],
3 | "build": {
4 | "build_number": 0,
5 | "build_time": 0,
6 | "release": false
7 | },
8 | "encryptLevel": 0,
9 | "useFeatures": [],
10 | "launchConfig": {
11 | "displaySplash": true,
12 | "hideLogs": false,
13 | "splashText": "Powered by Auto.js Pro",
14 | "stableMode": false
15 | },
16 | "mainScriptFile": "main.js",
17 | "name": "无情的打字机",
18 | "optimization": {
19 | "removeOpenCv": false,
20 | "unusedResources": false
21 | },
22 | "packageName": "pack.name.i.dont.know.com",
23 | "publish": {
24 | "category": "其他",
25 | "details": "只是一个很鸡肋的打字机",
26 | "maxAutoJsVersion": -1,
27 | "maxProVersion": 7009999,
28 | "minAutoJsVersion": -1,
29 | "minProVersion": 7000000,
30 | "minSdkVersion": 2,
31 | "permissions": [],
32 | "summary": "无聊之作(新手之作)",
33 | "tags": []
34 | },
35 | "scripts": {},
36 | "versionCode": 0,
37 | "versionName": "1.0.0"
38 | }
--------------------------------------------------------------------------------