说到“定时”有这么几种常见的形式:
(1)每天固定时间执行,就像手机闹钟一样,到时间就会执行操作。这种情况我执行有一篇文章教程《按键精灵 怎么做一个定时功能》,想学习的朋友可以去看一下。
(2)每隔一段时间执行一次任务;这种是我们用的最多的,每次我们循环执行一段代码,都会在循环底部加上一个延迟,这个其实就是间隔固定时间的“定时”。
比如:
Do
TracePrint "我是任务"
Delay 30000
Loop
这是一个每个30秒时间,输出一句话的操作。
(3)间隔一段时间执行一次任务,同时在间隔等待期间,执行别的任务操作。
Dim t=tickcount()
Call 函数1()
For 10
If TickCount() – t > 10000 Then
Call 函数1()
t=tickcount()
Else
Call 函数2()
End If
Next
Function 函数1()
TracePrint 1
End Function
Function 函数2()
TracePrint 2
Delay 3000
End Function
来分析一下这个实现的原理,这段代码中有一个关键命令,TickCount()这个命令是获取脚本运行时间,这个时间获取的方式是从你按下开始键的那一刻开始计时,到你执行这个命令时所用的时间。
我们使用TickCount()这个命令,通常是使用运行两次之后的相对时间,来计算某段代码运行时间。
如上图,第一次执行TickCount()命令得到是时间①,第二次执行TickCount()命令得到是时间②,用时间②减去时间①,得到的结果就是两次执行TickCount()命令之间代码所用的时间。
回看上面的代码Dim t=tickcount(),我们先把第一次执行的存入变量t当中,然后TickCount() – t 就可以得到两次执行的时间差。
之后把时间差和预先设定的时间比较,If TickCount() – t > 10000 Then成立
就说明到时间了,如果不成立就是还在等待期间,此时可以执行别的任务。
(4)给脚本添加试用时间,这个也是一种“定时”,执行的操作比较特殊是关闭脚本。