[分享]-局部截图,全屏找图自测脚本代码

//py: 1912380084
//本人运行环境: 已ROOT 安卓 6.0.1
//自行测试-代码如下:
发帖不易,用了不错,给个回复点个赞。

auto.waitFor();
const tupianmulu = files.cwd() + "/图片目录/"
toast(tupianmulu);
files.createWithDirs(tupianmulu)
images.requestScreenCapture();

var xz = dialogs.select("选择功能:", ["全屏找图", "截图"])
if (xz == 0) {
var tpxz = files.listDir(tupianmulu, function(name) {
return name.endsWith(".png") && files.isFile(files.join(tupianmulu, name));
});
var i = dialogs.select("请选择一个选项", tpxz);
if (i >= 0) {
sleep(300)
images.captureScreen(tupianmulu + "全屏图.png");
sleep(100)
var img = tupianmulu + "全屏图.png"
var img2 = tupianmulu + tpxz[i]
var zt = findImage(images.read(img), images.read(img2));
sleep(500)
if (zt != null) {
if (confirm("找到图片位置: X=" + zt.x + " - Y=" + zt.y + "\n是否点击测试?")) {
//click(zt.x,zt.y);
Tap(zt.x, zt.y);
exit()
}
} else {
toast("没有在屏幕上找到该图片!抱歉");
exit()
};
} else {
toast("您取消了找图功能,软件自动退出.");
exit()
};
toast("运 行 结 束");
exit();
} else if (xz = 1) {
var xfc = floaty.window(
<frame>
<button id="qd" text="确定" w="" h="" bg="#77ffffff" textColor="red"/>
</frame>
);
xfc.setPosition(0, 0);
xfc.exitOnClose()
xfc.setAdjustEnabled(true);
var qrjt = 0
var x, y, w, h, dqx, dqy
xfc.qd.click(() => {
dqx = xfc.getX()
dqy = xfc.getY()
toast('截取标记区域中,本操作需要3秒,请勿操作屏幕!');
x = xfc.getX() + 24;
y = xfc.getY() + 70;
w = xfc.getWidth() - 40;
h = xfc.getHeight() - 45;
qrjt = 1
xfc.setPosition(-1000, -1000);
})

}
setInterval(() => {
if (qrjt == 1) {
sleep(1000)
var jietu = captureScreen()
var b = images.clip(jietu, x, y, w, h);
name = rawInput("截图文件名设置:\n注意文件类型必须是: *.png\n\n例如:", "1.png");
b.saveTo(tupianmulu + name);
if (files.exists(tupianmulu + name)) {
toast("文件创建成功,存放地址在:\n" + tupianmulu + name)
if (confirm("是否查看截图图片?\n因为本截图无法更加缩小\n可用软件裁剪修改图片大小\n注意: 图片为png格式。\n切记只可裁剪图片大小!!!")) {
app.viewFile(tupianmulu + name)
}
}
qrjt = 0
xfc.setPosition(dqx, dqy)

}

}, 1000);

最后由 1912380084 编辑

14:41:44.589/E: Wrapped android.view.InflateException: java.lang.StringIndexOutOfBoundsException: length=0; index=-1 (floaty.js#9)
at script(floaty.js:9)
at script(<局部截图,全屏找图>:32)

@flyflower
复制后直接运行错误?
还是什么?先截图,然后在运行找图

最后由 1912380084 编辑

@1912380084 点截图的时候会出现如下错误:

18:25:23.242/E: Wrapped android.view.InflateException: java.lang.StringIndexOutOfBoundsException: length=0; index=-1 (floaty.js#9)
at script(floaty.js:9)
at script(<局部截图,全屏找图>:32)

@flyflower
软件需要悬浮窗权限,和屏幕内容获取同意。
你是点了截图功能后直接错误吗?
还是点了截图出现了一个悬浮窗出问题?
然后还是点了中间的确定后面的操作问题?
你这个问题操作到那一步出现问题的。仔细说说。
你有自己修改代码吗?

最后由 1912380084 编辑

权限都给了,运行之后出现“Auto.js将开始截取您的屏幕上显示的所有内容。”,立即开始之后选择截图立马出现这个错误。

@flyflower
你从新复制一下代码,运行看看,别改代码。

  • 8
    帖子
  • 4509
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待