按键精灵中并没有计时器,如果我们需要执行某个操作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 好了,有同学可能觉得程序中为了计时器加这个代码乱,其实我也这么觉得,所以我后面把他们都封装起来直接调用~ 下面看! 改进后的计时器这样就用上了,是不是觉得很清爽~ 主要代码就两句,就可以实现多线程计时器,一个是启用计时,一个是获取结束计时时候的返回值。 Call Lib.MyTool.Timer(计时时间) Lib.MyTool.TimerF(循环体循环数,自定义返回数) 好了~结束。 存在问题,不知道按键创建进程是否会自动销毁进程,不然运行时间长的话会出问题。 |
|