一种 很简单很笨很低级的 悬浮窗按钮暂停脚本 的方法

文章目录

  • 先看效果
  • 一、悬浮窗
  • 二、代码
    • 1.悬浮窗设置
    • 2.按钮点击
    • 3.脚本暂停运行 控制检测函数
    • 4.主线程
  • 三、完整代码
  • 总结

先看效果


如果还满意你所看到的,就可以继续往下看实现了

一、悬浮窗

autojs 里边有个控制台console,也有个悬浮窗floaty。
我刚开始一直没有分清楚这两个,在这里简单说一下我的认识。

console就是控制台,能显示所有的日志信息。
控制台的布局基本是固定的:

悬浮窗也能实现显示日志信息的功能,不过是通过自己写的方式,而不是直接显示日志。
悬浮窗一般是一片灰色,但是可以自己写布局:

悬浮窗有window和rawWindow

floaty.rawWindow()与floaty.window()函数不同的是,该悬浮窗不会增加任何额外设施(例如调整大小、位置按钮)(就是上图中那三个突兀的黑圈圈),您可以根据自己需要编写任何布局。

我们这里用的是window,自带移动窗体,关闭脚本的功能。
之后会自己写布局,感兴趣的朋友可以收藏关注一下~

二、代码

1.悬浮窗设置

floaty.window(layout):指定悬浮窗的布局,创建并显示一个悬浮窗,返回一个FloatyWindow对象。
其中layout参数可以是xml布局或者一个View。

var 悬浮窗 = floaty.window(<frame h="auto" w="auto" gravity="center" bg="#77ff0000"><button id="console" text="暂停" /></frame>
);
悬浮窗.setPosition(500, 1000)   //设置位置(x,y)
悬浮窗.setAdjustEnabled(true)   //显示三个按钮
悬浮窗.exitOnClose()    //关闭悬浮窗时自动结束脚本运行

2.按钮点击

悬浮窗.id.click(function () { 点击该id的控件后 的操作 }

//指定确定按钮点击时要执行的动作
悬浮窗.console.click(function () {反状态 = 悬浮窗.console.getText();  //获得id="console"的按钮的文字if (反状态 == "暂停") {toast("脚本已暂停");ui.run(function () {悬浮窗.console.setText("开始");  //设置按钮文本});}else {toast("脚本已继续");ui.run(function () {悬浮窗.console.setText("暂停");});}
});

3.脚本暂停运行 控制检测函数

是通过阻塞来进行脚本暂停的

function kz() {while (1) {反状态 = 悬浮窗.console.getText();   //log(反状态)if (反状态 == "开始") {//反状态为开始时,脚本要暂停,即被阻塞toastLog("脚本暂停中");sleep(2000) //这个只影响主程序,就是你可以在这期间点开始运行,在sleep结束后,主程序会继续运行}else{//反状态为暂停时,脚本要运行,即跳出死循环break}}
}

4.主线程

个人感觉,检测函数只需要放到 模拟实际操作(如点击、滑动) 的过程中

i = 0
j = 0
while (1) {kz()    //其实这个检测只需要在 模拟操作的 过程中添加,sleep(1000)kz()    //一般脚本都是模拟人的操作,在这个过程中,点击控件啥的才需要i = i + 1kz()    //像其他后台分析计算什么的就不太需要了log(i)kz()    sleep(2000)j = j - 1kz()log(j)kz()
}

三、完整代码

var 悬浮窗 = floaty.window(<frame h="auto" w="auto" gravity="center" bg="#77ff0000"><button id="console" text="暂停" /></frame>
);
悬浮窗.setPosition(500, 1000)   //设置位置(x,y)
悬浮窗.setAdjustEnabled(true)   //显示三个按钮
悬浮窗.exitOnClose()    //关闭悬浮窗时自动结束脚本运行//指定确定按钮点击时要执行的动作
悬浮窗.console.click(function () {反状态 = 悬浮窗.console.getText();  //获得id="console"的按钮的文字if (反状态 == "暂停") {toast("脚本已暂停");ui.run(function () {悬浮窗.console.setText("开始");  //设置按钮文本});}else {toast("脚本已继续");ui.run(function () {悬浮窗.console.setText("暂停");});}
});
function kz() {while (1) {反状态 = 悬浮窗.console.getText();   //log(反状态)if (反状态 == "开始") {//反状态为开始时,脚本要暂停,即被阻塞toastLog("脚本暂停中");sleep(2000) //这个只影响主程序,就是你可以在这期间点开始运行,在sleep结束后,主程序会继续运行}else{//反状态为暂停时,脚本要运行,即跳出死循环break}}
}
i = 0
j = 0
while (1) {kz()    //其实这个检测只需要在 模拟操作的 过程中添加,sleep(1000)kz()    //一般脚本都是模拟人的操作,在这个过程中,点击控件啥的才需要i = i + 1kz()    //像其他后台分析计算什么的就不太需要了log(i)kz()    sleep(2000)j = j - 1kz()log(j)kz()
}

总结

这个当然又丑,又不高级,算是一个记录吧,至少能实现暂停脚本的功能了,毕竟之前都没想到这种方法。

网上都查不到autojs暂停脚本的方法(可能只是我查不到,如果有现成的还请给我指个路,拜托拜托),只能自己造,即使再垃圾,我这个也算是独一份了,哇咔咔~

之后还会写有更好看界面的悬浮窗,也会写有开始、暂停、继续、停止、打印日志等功能的悬浮窗,如果有更牛的暂停脚本的方法也会继续分享。

autojs之悬浮窗按钮暂停脚本~一种很笨的方法,但是可以实现暂停脚本的功能相关推荐

  1. android悬浮窗按钮在哪,android——悬浮窗控件Toast

    前端 后端 Toast 是一个悬浮窗控件,在不影响用户操作的条件下,按动按钮显示悬浮窗. 不同的是,Toast不支持点击事件,需要函数调用.所以要在外部函数初始化我们按钮的 控件,当我们的对象V创建出 ...

  2. android悬浮按钮弹出与隐藏,Android悬浮窗按钮实现点击并显示/隐藏多功能列表

    前言 最近在一个项目中,需要制作录屏的功能,原先是在应用中有录屏/控制的按钮,思考之下觉得这种效果并不好,因此就想制作一个可以悬浮的悬浮窗,这样不论手机在什么界面中都可以对录屏功能进行控制. 这里就来 ...

  3. autojs开启悬浮窗权限_微信悬浮窗功能普及?甚至更胜一筹

    最近微信的安卓版本更新了悬浮窗功能的确很好用!但悬浮窗有数量限制,而且仅限于微信.小狐日常在刷微博的时候,看到好的文章,当时又看不完,就在想,这时要是有微信的悬浮窗功能该多好! 甚至一些文章只看到一半 ...

  4. Android 实现简单的悬浮窗按钮(一)

    先来看一下实现效果吧 功能较为简单,直接贴出主要实现代码: public class MainActivity extends AppCompatActivity implements View.On ...

  5. Android设置悬浮窗按钮,图片有多余的白色背景

    Android设置系统悬浮窗简单的操作就是: 1.设置悬浮窗显示的样式(用LayoutInflater实例化layout布局) 2.设置该样式在Window中的显示样式(即 WindowManager ...

  6. autojs 设置悬浮窗可触摸

    普通交流群698307198欢迎加入v群,和各位大神一同交流 免责声明:本博客提供的所有内容仅供学习.分享与交流,我们不保证内容的正确性.通过使用本博客内容随之而来的问题与本博客无关.当使用本博客代码 ...

  7. react下移动端可吸附悬浮窗按钮,支持拖动拖拽功能

    基于react实现的移动端的可吸附悬浮按钮 预览地址(移动端): kkfor.github.io/suspend-but- 源码地址: github.com/kkfor/suspe- 安装 npm i ...

  8. auto.js悬浮窗按钮的实际使用

    var w = floaty.window( <vertical> <button id='start'>继续</button> <button id='st ...

  9. shell脚本 8种字符串截取的方法

    来源:http://www.jb51.net/article/56563.htm Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm ...

最新文章

  1. NotFoundError: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for xxx
  2. 【Hibernate步步为营】--双向关联一对一映射具体解释(一)
  3. 【OpenCV】图像的通道分离
  4. vue函数如何调用其他函数?_好程序员Python教程系列之递归函数与匿名函数调用...
  5. 7_15_2013 E: 机器人II
  6. MIP开发教程(一) MIP-CLI工具安装与环境部署
  7. xml文件、jsp文件、sql文件、shell脚本文件注释
  8. 使用timerfd实现定时器功能
  9. Firefox浏览Flash网页乱码的解决方案
  10. 异步流程控制 java_Javascript异步流程控制之串行执行详解
  11. HTML5和CSS3系列(四):常见样式、背景、Web字体、2D转换、过渡
  12. mysql在网页上显示乱码_计算机毕设答辩时网页报错怎么办
  13. 验证码功能-简单实现
  14. API网关之-协议转换原理
  15. Vue在线客服系统【开源项目】
  16. 神威太湖之光之超级计算机,中国研发的“神威·太湖之光”,超级计算机能给我们带来什么?...
  17. 16福师计算机应用基础在线作业,[16春季福师计算机应用基础在线作业一.doc
  18. IT部门绩效考核管理思考
  19. 记 flip 简单的动画思路
  20. HTML Purifier解决XSS问题

热门文章

  1. 收藏微软面试智力题 (附答案)
  2. VR交互动画短片《拾梦老人》的开发经历
  3. OpenCV学习笔记(十一)——图像噪声的生成(椒盐噪声、高斯噪声)
  4. 一加账号app_一加云服务app-一加云服务登录平台v1.0 安卓版 - 极光站
  5. JavaFX桌面应用开发-GridPane(网格布局)
  6. 学习笔记-三维超声相关知识
  7. python图像去污_python图像去雾总结
  8. 为什么大公司不喜欢用第三方框架?难道是因为……
  9. qq魔法表情原理,解密及其他
  10. 读书笔记:写给大家看的设计书(第三版)