⽂章⽬录
特拉法尔加罗先看效果
如果还满意你所看到的,就可以继续往下看实现了
⼀、悬浮窗
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(){
反状态=悬浮窗.Text();//获得id="console"的按钮的⽂字
if(反状态=="暂停"){
toast("脚本已暂停");
ui.run(function(){
悬浮窗.console.setText("开始");//设置按钮⽂本
});
}
else{
toast("脚本已继续");
ui.run(function(){
悬浮窗.console.setText("暂停");
});
}
});
3.脚本暂停运⾏控制检测函数
是通过阻塞来进⾏脚本暂停的
function kz(){
while(1){
反状态=悬浮窗.Text();
//log(反状态)
古代女名字
if(反状态=="开始"){//反状态为开始时,脚本要暂停,即被阻塞
toastLog("脚本暂停中");
sleep(2000)//这个只影响主程序,就是你可以在这期间点开始运⾏,在sleep结束后,主程序会继续运⾏}
else{//反状态为暂停时,脚本要运⾏,即跳出死循环
break
}
}
}
4.主线程
个⼈感觉,检测函数只需要放到 模拟实际操作(如点击、滑动) 的过程中
i =0
j =0
while(1){
kz()//其实这个检测只需要在模拟操作的过程中添加,
sleep(1000)
kz()//⼀般脚本都是模拟⼈的操作,在这个过程中,点击控件啥的才需要
i = i +1
kz()//像其他后台分析计算什么的就不太需要了
log(i)
kz()
sleep(2000)
j = j -1
kz()
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(){
反状态=悬浮窗.Text();//获得id="console"的按钮的⽂字
if(反状态=="暂停"){
toast("脚本已暂停");
ui.run(function(){
悬浮窗.console.setText("开始");//设置按钮⽂本
});
}
else{
toast("脚本已继续");
ui.run(function(){
悬浮窗.console.setText("暂停");
});
}
});
function kz(){
while(1){
反状态=悬浮窗.Text();
//log(反状态)
if(反状态=="开始"){//反状态为开始时,脚本要暂停,即被阻塞
toastLog("脚本暂停中");
sleep(2000)//这个只影响主程序,就是你可以在这期间点开始运⾏,在sleep结束后,主程序会继续运⾏
}
else{//反状态为暂停时,脚本要运⾏,即跳出死循环
break
}
}
}
i =0
j =0
while(1){
kz()//其实这个检测只需要在模拟操作的过程中添加,
sleep(1000)
kz()//⼀般脚本都是模拟⼈的操作,在这个过程中,点击控件啥的才需要
i = i +1
kz()//像其他后台分析计算什么的就不太需要了
log(i)
kz()
sleep(2000)
j = j -1
kz()
log(j)
kz()
}
总结
这个当然⼜丑,⼜不⾼级,算是⼀个记录吧,⾄少能实现暂停脚本的功能了,毕竟之前都没想到这种⽅法。
⽹上都查不到autojs暂停脚本的⽅法(可能只是我查不到,如果有现成的还请给我指个路,拜托拜托),只能⾃⼰造,即使再垃圾,我这个也算是独⼀份了,哇咔咔~
之后还会写有更好看界⾯的悬浮窗,也会写有开始、暂停、继续、停⽌、打印⽇志等功能的悬浮窗,如果有更⽜的暂停脚本的⽅法也会继续分享。
发布评论