注册时间
最后登录
新帖
发布在 技术交流 阅读更多

Extinguish 息屏挂机 0.9
作者:moderpach
下载地址:https://www.123pan.com/s/km8Jjv-l0Mr3
提取码:N1gg

发布在 技术交流 阅读更多

使用Extinguish
需要shizuku激活

发布在 技术交流 阅读更多

我把你的问题喂给chatgpt
回复如下

感谢你的反馈!关于悬浮窗的问题,确实在特定版本或特定设备上可能会出现显示不正常的情况。以下是一些你可以尝试的解决办法,以及一些反馈建议:

解决方法

  1. 确认代码设置
    确保你在代码中正常地设置了悬浮窗的宽高。比如:

    var window = floaty.rawWindow(
        <frame>
            <text text="Hello, World!" />
        </frame>
    );
    
    var width = device.width / 4; // 计算宽度
    var height = device.height / 4; // 计算高度
    
    window.setSize(width, height);
    
  2. 检查设备设置
    在某些模拟器上,设备的 DPI(每英寸点数)设置可能会影响悬浮窗的大小,确保在模拟器或真实设备的设置中,分辨率和 DPI 设置是正确的。

  3. 更新至最新版本
    尝试将 Auto.js 更新到最新版本,开发者可能已经在新版本中修复了相关问题。

  4. 使用不同模拟器
    如果问题依然存在,尝试在不同版本的模拟器上运行(如 BlueStacks、Nox等),或在真实设备上进行测试,看是否存在类似的问题。

  5. 记录并反馈问题
    如果上述方法都无法解决问题,可以记录你所使用的设备、操作系统、Auto.js 版本以及具体的代码示例,然后报告给开发者或在其 GitHub 或社区中进行反馈。

反馈建议

  • 在反馈时,尽量提供详细的信息,包括:
    • 操作系统版本(如 Android 10、Android 11)
    • Auto.js 版本
    • 模拟器的具体版本(如 MuMu 版本)
    • 具体的代码示例
    • 预期的行为与实际的表现之间的差异

通过详细的反馈,开发者能够更快定位和解决问题。希望你的悬浮窗问题能够尽快得到解决!如果有其他问题,欢迎继续提问。

发布在 技术交流 阅读更多

新版有bug,就用旧版吧

发布在 技术交流 阅读更多

在Auto.js中,想要实现监听用户双击手机背部的功能是比较复杂的,因为这通常涉及到系统层级的事件捕获,Auto.js本身并没有提供直接的API来监听这类事件。不过,你可以尝试以下解决方案:

方法一:使用系统级别的辅助服务(Accessibility Service)

  1. 辅助服务:你可以使用Android的无障碍服务(Accessibility Service)来监听一些系统事件,可能有一些办法检测到双击等手势。但需要注意的是,这种方式需要设备的无障碍服务权限。

  2. 实现双击逻辑

    • 使用自定义的手势识别逻辑(如定时器检测)来判断用户在屏幕上的双击。
    • 你可能可以结合MotionEvent来实现设备上树形事件的捕捉。

方法二:使用第三方库(如 Tasker 或 EventGhost)

  • TaskerEventGhost 这样的第三方自动化工具可以帮助你监听手机的特殊操作,包括双击背部。你可以通过这些工具设置一个触发器,当检测到双击背部时,启动Auto.js脚本。

方法三:提权和开发自定义服务

  • 这可能涉及到深度的Android系统开发,需要提权以及对系统的直接操作。你可以开发一个Android应用,使用手势识别库来实现双击背部的监听,这样应用可以在后台监听这些事件。

实现截屏和发送功能

一旦你监听到双击背部,你可以使用Auto.js来截屏并将截屏发送到特定应用中。可以使用如下代码:

// 截屏
var screenshot = images.captureScreen();

// 发送到指定应用
launchApp("TargetAppName"); // 替换为目标应用的名称
sleep(2000); // 等待应用加载
// 假设目标应用中有处理图片的粘贴板逻辑
setClip(screenshot); // 将截屏保存到剪贴板
// 你可能需要模拟粘贴操作
// 例如,点击输入框后,再模拟粘贴的操作

注意事项

  • 请确保你有合适的权限来截屏和操作剪贴板。
  • 由于Android系统的限制,监听双击背部的事件比较复杂,需要谨慎处理相关权限问题。

总结:虽然Auto.js本身不支持直接监听手机背部的双击事件,但你可以结合其他的工具和技术,以便实现这一功能。注意权限和安全性问题。希望这些建议能帮助你实现目标。

发布在 技术交流 阅读更多

我把你的问题喂给ChatGPT

发布在 技术交流 阅读更多

在Auto.js中实现长截图,可以通过以下方法来完成。长截图通常是将多个屏幕图像拼接起来形成一个较长的整体图像。以下是实现长截图的基本步骤:

1. 准备工作

确保你的Auto.js版本支持屏幕截图功能,并且已获取相应的权限。

2. 确定截图高度

根据需要截图的内容确定截图的起始位置和结束位置,也就是你想要拼接的竖直高度。

3. 循环截图

使用 images.captureScreen() 或者其他截图方法循环截取各个部分,并将它们拼接在一起。

4. 拼接图片

使用images库中的相关方法,将截取的多个图像拼接成一个长图。

示例代码

以下是一个简单的示例代码,用于实现长截图:

// 获取权限
if (!requestScreenCapture()) {
    toast("请求截图失败");
    exit();
}

// 截图的高度和位置
const startY = 0; // 从屏幕顶部开始
const endY = device.height * 3; // 假设我们想要的长图高度为3倍屏幕高度

// 保存截取的图片
let allImages = [];
let currentY = startY;

// 循环截取,直到达到预定的结束Y值
while (currentY < endY) {
    let screenshot = images.captureScreen();
    if (screenshot) {
        allImages.push(screenshot);
        currentY += device.height; // 每次向下移动一个屏幕高度
        sleep(100); // 暂停一定时间,确保屏幕刷新
    } else {
        toast("截图失败");
        break;
    }
}

// 拼接所有图片
let totalHeight = 0;
allImages.forEach(img => {
    totalHeight += img.getHeight(); // 计算总高度
});

let longImage = images.create(totalWidth, totalHeight); // 创建长图

let currentHeight = 0;
allImages.forEach(img => {
    longImage.blit(0, currentHeight, img, 0, 0, img.getWidth(), img.getHeight()); // 逐个拼接
    currentHeight += img.getHeight();
});

// 保存长图
let savePath = "/sdcard/长截图.png"; // 设置保存路径
images.saveTo(longImage, savePath);
toast("长截图保存成功: " + savePath);

注意事项

  1. 权限问题:在Android系统中,确保你的应用具有屏幕截图的权限。
  2. 性能问题:长时间和高频率的截图可能会导致应用变慢,可以适当调整帧率。
  3. 图片拼接计算:需要根据实际的截图高度和位置来调整拼接逻辑,确保最终图片的效果。

以上示例仅供参考,可能需要根据具体的需求进行适当修改。希望对你有帮助!

发布在 技术交流 阅读更多

在使用Auto.js进行控件查找时,不同的方法在性能和效率上会有所差异。以下是对你提到的几种方法的简要比较:

  1. findOne() / findOnce():

    • 这两个方法会返回找到的第一个控件,效率较高,特别是在控件没有加载完时,因为它会立即返回 null
    • findOnce() 是在 findOne() 的基础上是否匹配不再查找,很适合不需要遍历所有控件的场景。
  2. find():

    • 这个方法返回一个集合,可能会引入一定的性能开销,因为它会遍历所有符合条件的控件。
    • 当你只需要判断控件是否存在时,这种方法通常不是最佳选择。
  3. filter():

    • filter() 是对控件集合进行过滤,效率依赖于过滤的条件复杂程度。
    • 如果过滤条件很复杂,可能会增加运算时间。
  4. exists():

    • 这个方法用来检查控件是否存在,内部实现较为高效,推荐用于快速检查控件的存在性。

效率和性能比较

如果只需要判断控件是否存在,推荐使用 exists() 方法或者 findOne(),这两者效率较高并且更简洁。在快速判断控件是否存在的同时,也能应对加载延时的问题。

图像识别

关于你的第二个问题,使用图像识别(images类的方法)在设备要求和运行效率上也有其自身的利弊:

  • 设备要求: 图像识别通常对设备要求较高,尤其是内存和处理能力。使用低性能的设备可能导致识别效率低下。
  • 图像质量: 确保图像清晰度和对比度足够好,以提高识别成功率。
  • 环境: 确保被识别的界面在不同时间或条件下不会发生过大变化。

推荐的设置

  1. 调整图片引擎设置: 使用时务必设置图像识别引擎的最优参数,例如使用合适的颜色模式和分辨率。
  2. 测试不同环境下的效果: 通过在不同环境(光照、对比度)下测试识别效果,以找到最优设置。
  3. 添加延迟: 可以适当添加短暂的延迟,给UI一些加载的时间。在判断控件存在之前,可以在循环中增加短暂等待时间,以确保控件能够正常加载。

总结

结合你的需求,建议在需要判断控件的存在时优先使用 exists() 或者 findOne(), 尽量避免用 find(),也可以组合使用图像识别,但需关注设备性能和识别效果。如果在测试中发现有规律的延迟,可以考虑在代码中动态调整判断间隔。

发布在 技术交流 阅读更多

解决问题了吗,回复一声