昨天把这个贴子发到原创区了,发错地方了!!!分享给刚写脚本的小白做参考。autojs写的,有简单的UI界面和悬浮窗,还有简单的查找节点以及点击节点,滑动节点
技术不难,难就难在入门,过来人都懂
源码给你们,自行打包测试,运行有问题,请留言!
如果发帖有违规,请版主删除!麻烦了!
使用工具:Auto.js
安卓版本:7.0(为啥不支持5.0和6.0,等入门了再研究吧,现在不用纠结)
抖音版本:13.8
打包教程:https://wws.lanzouj.com/b01i1q4de 密码:3lfi
支持分辨率:通用
权限:无障碍和悬浮窗
运行GIF图:
工具截图:
源码:
[JavaScript] 纯文本查看 复制代码 "ui";
ui.layout(
<ScrollView>
<vertical>
<appbar>
<toolbar id="toolbar" title="粉丝列表关注" />
</appbar>
<card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical">
<vertical padding="5" h="auto">
<linear>
<text text="间隔时间/秒" textColor="black" w="auto" />
<input id="shurukuang1" color="black" w="150" />
</linear>
</vertical>
</card>
<button style="Widget.AppCompat.Button.Colored" margin="10" id="start">直接启动</button>
</vertical>
</ScrollView>
);
var storage = storages.create("peizhiwenjian");
var 间隔时间 = 读取设置("shurukuang1")
if (间隔时间 != undefined) {
ui.shurukuang1.setText(间隔时间)
}
ui.start.on("click", () => {
threads.start(function () {
//在新线程执行的代码
保存设置("shurukuang1", ui.shurukuang1.text())
间隔时间 = 读取设置("shurukuang1")
home()
悬浮窗()
})
});
function 悬浮窗() {
var window = floaty.window(
<frame>
<button id="action" text="开始运行" w="90" h="40" bg="#ffffffff" />
</frame>
);
setInterval(() => { }, 1000);
var execution = null;
//记录按键被按下时的触摸坐标
var x = 0, y = 0;
//记录按键被按下时的悬浮窗位置
var windowX, windowY;
//记录按键被按下的时间以便判断长按等动作
var downTime;
window.action.setOnTouchListener(function (view, event) {
switch (event.getAction()) {
case event.ACTION_DOWN:
x = event.getRawX();
y = event.getRawY();
windowX = window.getX();
windowY = window.getY();
downTime = new Date().getTime();
return true;
case event.ACTION_MOVE:
//移动手指时调整悬浮窗位置
window.setPosition(windowX + (event.getRawX() - x),
windowY + (event.getRawY() - y));
//如果按下的时间超过1.5秒判断为长按,退出脚本
if (new Date().getTime() - downTime > 1500) {
exit();
}
return true;
case event.ACTION_UP:
//手指弹起时如果偏移很小则判断为点击
if (Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5) {
onClick();
}
return true;
}
return true;
});
function onClick() {
if (window.action.getText() == '开始运行') {
多线程1 = threads.start(function () {
//在新线程执行的代码
开始()
})
window.action.setText('停止运行');
} else {
if (execution) {
execution.getEngine().forceStop();
}
// 多线程1.interrupt()
exit()
window.action.setText('开始运行');
}
}
}
function 保存设置(控件ID, 值) {
storage.put(控件ID, 值)
}
function 读取设置(控件ID) {
var 返回值 = storage.get(控件ID)
return (返回值)
}
events.on("exit", function () {
log("结束运行");
console.hide()
});
function 开始() {
console.show();
// console.log("调整大小...");
console.setSize(500, 800);
// console.log("调整位置...");
console.setPosition(device.width - 500, 0);
while (true) {
关注按钮 = id("a8h").text("关注").findOnce()
if (关注按钮) {
关注按钮.click()
sleep(500)
log("关注成功")
log("间隔时间:" + 间隔时间)
sleep(间隔时间 * 1000)
} else {
滑动 = id("ghi").findOnce()
if (滑动) {
滑动.scrollForward()
log("翻页成功")
sleep(2000)
}
}
}
} |