分享

按键精灵中并没有计时器,自己制作可调用的多线程计时器!

 本明书馆 2018-09-12
按键精灵中并没有计时器,如果我们需要执行某个操作10秒钟,这样将会很麻烦,因为程序要么停下来只是数过了几秒,要么就嗖嗖嗖的跑程序不知道跑多久,我们需要它一边计时的同时跑程序,所以需要计时器控制程序,做到某段程序仅执行一定的时间。好了,进入正题!

Global k //全局变量k,用于在计时结束时给个信号已结束下面的循环
k=0
BeginThread time // 启动线程time
Delay 100 
i=0
While k = 0
    Delay 1000
    TracePrint "过了 " & i & " 秒!"
    TracePrint "K值为 " & k & " !"//仅仅表示程序在跑While时候同时在跑sub time计时
    i=i+1
Wend

Sub time() //作为线程函数
    k = Lib.MyTool.Timer(5000, 10) //函数为我在命令库里自己建的文件(MyTool)下的函数,设置为执行5秒,结束后Tiemr返回 10 故过5秒后k=10
End Sub

/************下面函数为我在命令库里自己建的文件(MyTool)下的函数***************/
Function Timer(time,n)//time为需要计时时间,n为计时结束后返回的值,需要n的原因在于作为标号,结束时根据标号判断结束的是哪一段程序,方便调试及编程
T1 = Plugin.Sys.GetTime//获取执行前系统时间
t=0
While time >= t
T2 = Plugin.Sys.GetTime//执行时刻时间监测
t = T2 - T1
Wend
Timer = n
End Function


好了,有同学可能觉得程序中为了计时器加这个代码乱,其实我也这么觉得,所以我后面把他们都封装起来直接调用~
下面看!
  1. i = 0 //仅为了显示个东西,没具体含义
  2. k = 0 // 循环运行信号
  3. Call Lib.MyTool.Timer(5000) // 函数为我在命令库里自己建的文件(MyTool)下的函数,下面有说,调用了计时器,开始后台计时
  4. While k = 0
  5.     Delay 1000
  6.     i=i+1
  7.     k = Lib.MyTool.TimerF(k,10) // 函数为我在命令库里自己建的文件(MyTool)下的函数,下面有说,调用计时器的监视函数,实时检查时间到了没
  8.     TracePrint i
  9. Wend
复制代码
改进后的计时器这样就用上了,是不是觉得很清爽~
主要代码就两句,就可以实现多线程计时器,一个是启用计时,一个是获取结束计时时候的返回值。
Call Lib.MyTool.Timer(计时时间)
Lib.MyTool.TimerF(循环体循环数,自定义返回数)
  1. Global Time_k //计时器本身运行信号
  2. Global Time_t //计时器计时的实时时间
  3. Time_k=0 // 为0 时是时间未到,继续计时,为 1 是到时,停止计时通知监视函数返回数据

  4. Sub Timer请使用subTimer //至于这个诡异的函数名,我是怕自己什么时候不小心调用错了、、、
  5. T1 = Plugin.Sys.GetTime//获取执行前系统时间
  6. t=0
  7. While Time_t >= t
  8. T2 = Plugin.Sys.GetTime//执行时刻时间监测
  9. t = T2 - T1
  10. Wend
  11. Time_k = 1
  12. End Sub

  13. Sub Timer(time)
  14. Time_t = time
  15.     BeginThread Timer请使用subTimer
  16.     Delay 100
  17. End Sub

  18. Function TimerF(i,j) // i计时器一般用于循环 i 为调用函数循环体的循环数, j 为自定义返回值,灵活使用
  19.     If Time_k = 0 Then 
  20.         TimerF = i
  21.     Else 
  22.         TimerF = j
  23.     End If
  24. End Function
复制代码
好了~结束。

存在问题,不知道按键创建进程是否会自动销毁进程,不然运行时间长的话会出问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多
    热门阅读 换一换