• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.8.0
软件大小:45M
更新时间:2025-05-20

按键精灵iOS版
立即下载

软件版本:2.2.1
软件大小:29.2M
更新时间:2025-05-27

按键手机助手
立即下载

软件版本:4.2.0
软件大小:242M
更新时间:2025-05-20

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[教程心得] [按键精灵] 脚本运行完成度的进度条 [复制链接]

1#

大家好,我是郭立员~,本文所讲内容仅供学习参考,请勿非法使用。

前言

平时刷抖音或者看视频会在下方有一个进度条,能够知道当前视频播放的进度。

如果给脚本也加个进度条,就能知道脚本运行的运行情况,还有多久能运行完。

一、进度条效果

①、做一个细长的悬浮窗。

②、添加一个按钮控件。

③、给按钮控件设置一个和悬浮窗背景色不同的颜色。









FW.NewFWindow("浮窗名", 0, 700, 720, 3)FW.AddButton("浮窗名", "进度条", "", 0, 0, 100, 3)FW.SetBackColor("进度条","0000FF")FW.Show("浮窗名")Do Delay 1000Loop

二、让进度条动起来

这里有两个思路,一是让进度条匀速增加,二是没完成一个功能进度条加一点。

(一)进度条匀速增加

既然是匀速增加,我们就要计算一下增加速度,假定屏幕宽度720像素,脚本运行一个循环是需要3分钟,那么每一秒增加4像素(720/180=4)。

那么可以做一个计次循环,循环次数为180次,每秒增加4像素,设置按钮的宽度增量为4像素/秒。














FW.NewFWindow("浮窗名", 0, 700, 720, 3)FW.AddButton("浮窗名", "进度条", "", 0, 0, 100, 3)FW.SetBackColor("进度条","0000FF")FW.Show("浮窗名")Do FW.SetWidth "进度条", 0 Delay 1000 For i = 1 To 180 FW.SetWidth("进度条",i*4) Delay 1000 NextLoop

上面的代码中很多数值都是固定值,这样不具有通用性,我们需要修改一下。

①、获取屏幕的宽度




Dim 屏幕宽度 = GetScreenX()TracePrint 屏幕宽度

②、获取脚本的运行时间

在脚本的最后一行,通常是循环结束的最后一行这个命令。



TracePrint TickCount()

就可以知道脚本运行完需要的时间,然后把这个时间加入到进度条参数中。

③、进度条的增加速度

屏幕宽度 / 脚本运行时间 = 进度条的增加速度。

④、末尾补齐

进度条的增加速度是除法计算的结果,未必是一个整除的数值,所以在循环结束后加上一个进度条宽度等于屏幕宽度的操作,保证补齐。


















Dim 屏幕高度 = GetScreenY()Dim 屏幕宽度 = GetScreenX()TracePrint 屏幕宽度Dim 运行时间 = 10FW.NewFWindow("浮窗名", 0, 屏幕高度, 屏幕宽度, 3)FW.AddButton("浮窗名", "进度条", "", 0, 0, 0, 3)FW.SetBackColor("进度条","0000FF")FW.Show("浮窗名")Do FW.SetWidth "进度条", 0 For i = 1 To 运行时间 FW.SetWidth("进度条",i*屏幕宽度/运行时间) Delay 1000 Next FW.SetWidth "进度条", 屏幕宽度Loop

这个方式是每一秒钟进度条的增加速度,如果脚本时间比较短,进度条看起来会有跳跃感,可以适当缩小循环中的延时,比如默认是Delay 1000

可以缩小10倍,变成Delay 100,相应的脚本时间*10,通过降低单次循环的耗时,增加循环次数,实现较小每次循环进度条的增加速度。

这么修改需要注意总耗时可能会比脚本运行时间长一点,这是因为修改悬浮窗按钮控件也是需要少量时间,随着循环次数扩大10倍,修改悬浮窗按钮控件的耗时也增加10倍,这个差值可能就变得明显了,可以微调每次循环的延迟使其平衡。

这种进度条匀速增加方式的缺点,进度条和脚本是独立运行的,所以需要单独给进度条增加一个线程,我们知道按键的多线程不算稳定,所以这个方式慎用。

(二)每运行一个步骤增加一次进度条

在脚本开始部分先开启悬浮窗展示。










Dim 屏幕高度 = GetScreenY()Dim 屏幕宽度 = GetScreenX()TracePrint 屏幕宽度Dim 运行时间 = 100FW.NewFWindow("浮窗名", 0, 屏幕高度, 屏幕宽度, 3)FW.AddButton("浮窗名", "进度条", "", 0, 0, 0, 3)FW.SetBackColor("进度条","0000FF")FW.Show ("浮窗名")

每完成一个操作,进度条增加一段宽度,这个宽度由你总操作数觉得,比如有10个操作,那么每一段就是屏幕宽度除以10。





Dim 操作数 = 10Dim 当前操作 = 3FW.SetWidth("进度条",屏幕宽度/操作数*当前操作)

如果不能整除还是需要最后一步补齐进度条。

实际使用的时候,如果操作数比较多,数起来比较费劲,可以这样弄,在开始阶段,当前操作 =0,后续每多一个操作 当前操作 =当前操作+1。

最后输出一下当前操作,就知道有多少个操作步骤了。















Dim 操作数 = 10Dim 当前操作 = 0Dim 屏幕高度 = GetScreenY()Dim 屏幕宽度 = GetScreenX()TracePrint 屏幕宽度Dim 运行时间 = 100FW.NewFWindow("浮窗名", 0, 屏幕高度, 屏幕宽度, 3)FW.AddButton("浮窗名", "进度条", "", 0, 0, 0, 3)FW.SetBackColor("进度条","0000FF")FW.Show ("浮窗名")//以下两行在每个操作结束后添加上当前操作 = 当前操作 + 1FW.SetWidth("进度条",屏幕宽度/操作数*当前操作)

这种方式的缺点是进度条增加是跳跃性。

正文完=


扫码免费获取我的基础教程【视频教程】
扫码下方二维码关注我的公众号:3分钟学堂

QQ交流群:936858410
2#

大家好,我是郭立员~,本文所讲内容仅供学习参考,请勿非法使用。

前言
平时刷抖音或者看视频会在下方有一个进度条,能够知道当前视频播放的进度。

如果给脚本也加个进度条,就能知道脚本运行的运行情况,还有多久能运行完。

一、进度条效果

①、做一个细长的悬浮窗。

②、添加一个按钮控件。

③、给按钮控件设置一个和悬浮窗背景色不同的颜色。

  1. FW.NewFWindow("浮窗名", 0, 700, 720, 3)
  2. FW.AddButton("浮窗名", "进度条", "", 0, 0, 100, 3)
  3. FW.SetBackColor("进度条","0000FF")
  4. FW.Show("浮窗名")
  5. Do
  6. Delay 1000
  7. Loop
复制代码
二、让进度条动起来

这里有两个思路,一是让进度条匀速增加,二是没完成一个功能进度条加一点。

(一)进度条匀速增加

既然是匀速增加,我们就要计算一下增加速度,假定屏幕宽度720像素,脚本运行一个循环是需要3分钟,那么每一秒增加4像素(720/180=4)。

那么可以做一个计次循环,循环次数为180次,每秒增加4像素,设置按钮的宽度增量为4像素/秒。
  1. FW.NewFWindow("浮窗名", 0, 700, 720, 3)
  2. FW.AddButton("浮窗名", "进度条", "", 0, 0, 100, 3)
  3. FW.SetBackColor("进度条","0000FF")
  4. FW.Show("浮窗名")
  5. Do
  6. FW.SetWidth "进度条", 0
  7. Delay 1000
  8. For i = 1 To 180
  9. FW.SetWidth("进度条",i*4)
  10. Delay 1000
  11. Next
  12. Loop
复制代码
上面的代码中很多数值都是固定值,这样不具有通用性,我们需要修改一下。

①、获取屏幕的宽度
  1. Dim 屏幕宽度 = GetScreenX()
  2. TracePrint 屏幕宽度
复制代码
②、获取脚本的运行时间

在脚本的最后一行,通常是循环结束的最后一行这个命令。

TracePrint TickCount()
就可以知道脚本运行完需要的时间,然后把这个时间加入到进度条参数中。

③、进度条的增加速度

屏幕宽度 / 脚本运行时间 = 进度条的增加速度。

④、末尾补齐

进度条的增加速度是除法计算的结果,未必是一个整除的数值,所以在循环结束后加上一个进度条宽度等于屏幕宽度的操作,保证补齐。
  1. Dim 屏幕高度 = GetScreenY()
  2. Dim 屏幕宽度 = GetScreenX()
  3. TracePrint 屏幕宽度
  4. Dim 运行时间 = 10
  5. FW.NewFWindow("浮窗名", 0, 屏幕高度, 屏幕宽度, 3)
  6. FW.AddButton("浮窗名", "进度条", "", 0, 0, 0, 3)
  7. FW.SetBackColor("进度条","0000FF")
  8. FW.Show("浮窗名")
  9. Do
  10. FW.SetWidth "进度条", 0
  11. For i = 1 To 运行时间
  12. FW.SetWidth("进度条",i*屏幕宽度/运行时间)
  13. Delay 1000
  14. Next
  15. FW.SetWidth "进度条", 屏幕宽度
  16. Loop
复制代码
这个方式是每一秒钟进度条的增加速度,如果脚本时间比较短,进度条看起来会有跳跃感,可以适当缩小循环中的延时,比如默认是Delay 1000

可以缩小10倍,变成Delay 100,相应的脚本时间*10,通过降低单次循环的耗时,增加循环次数,实现较小每次循环进度条的增加速度。

这么修改需要注意总耗时可能会比脚本运行时间长一点,这是因为修改悬浮窗按钮控件也是需要少量时间,随着循环次数扩大10倍,修改悬浮窗按钮控件的耗时也增加10倍,这个差值可能就变得明显了,可以微调每次循环的延迟使其平衡。

这种进度条匀速增加方式的缺点,进度条和脚本是独立运行的,所以需要单独给进度条增加一个线程,我们知道按键的多线程不算稳定,所以这个方式慎用。

(二)每运行一个步骤增加一次进度条

在脚本开始部分先开启悬浮窗展示。
  1. Dim 屏幕高度 = GetScreenY()
  2. Dim 屏幕宽度 = GetScreenX()
  3. TracePrint 屏幕宽度
  4. Dim 运行时间 = 100
  5. FW.NewFWindow("浮窗名", 0, 屏幕高度, 屏幕宽度, 3)
  6. FW.AddButton("浮窗名", "进度条", "", 0, 0, 0, 3)
  7. FW.SetBackColor("进度条","0000FF")
  8. FW.Show ("浮窗名")
复制代码
每完成一个操作,进度条增加一段宽度,这个宽度由你总操作数觉得,比如有10个操作,那么每一段就是屏幕宽度除以10。
  1. Dim 操作数 = 10
  2. Dim 当前操作 = 3
  3. FW.SetWidth("进度条",屏幕宽度/操作数*当前操作)
复制代码
如果不能整除还是需要最后一步补齐进度条。

实际使用的时候,如果操作数比较多,数起来比较费劲,可以这样弄,在开始阶段,当前操作 =0,后续每多一个操作 当前操作 =当前操作+1。

最后输出一下当前操作,就知道有多少个操作步骤了。
  1. Dim 操作数 = 10
  2. Dim 当前操作 = 0
  3. Dim 屏幕高度 = GetScreenY()
  4. Dim 屏幕宽度 = GetScreenX()
  5. TracePrint 屏幕宽度
  6. Dim 运行时间 = 100
  7. FW.NewFWindow("浮窗名", 0, 屏幕高度, 屏幕宽度, 3)
  8. FW.AddButton("浮窗名", "进度条", "", 0, 0, 0, 3)
  9. FW.SetBackColor("进度条","0000FF")
  10. FW.Show ("浮窗名")
  11. //以下两行在每个操作结束后添加上
  12. 当前操作 = 当前操作 + 1
  13. FW.SetWidth("进度条",屏幕宽度/操作数*当前操作)
复制代码
这种方式的缺点是进度条增加是跳跃性。

正文完=

扫码免费获取我的基础教程【视频教程】
扫码下方二维码关注我的公众号:3分钟学堂

QQ交流群:936858410
3#

,

点赞,收藏,学习学习

发新话题 回复该主题