VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 计算从开机到现在用了多少秒
发表评论(0)作者:, 平台:, 阅读:10864, 日期:2000-03-12
计算从开机到现在用了多少秒



下面的程序与标准的Timer控件相比,有两个同的地方:


1。该程序计算的起点是系统启动的时间,而不是从午夜开始算起。如果你想从午

夜开始算起,用(Now-Int(Now))*86400这条语句就行了。


2。精度更高,标准Timer控件的Tick频率为1KHz,而该程序为1.4MHz


下面是程序的源代码:


Option Explicit


Private Declare Function osQueryPerformanceCounter Lib "Kernel32" Alias

"QueryPerformanceCounter" _ (lpPerformanceCount As Currency) As Long


Private Declare Function osQueryPerformanceFrequency Lib "Kernel32"

Alias "QueryPerformanceFrequency" (lpFrequency As Currency) As Long


Public Function Timer() As Single


Dim freq As Currency, count As Currency


osQueryPerformanceFrequency freq


osQueryPerformanceCounter count


Timer = count / freq


End Function


需要说明的一点是,如果你查阅API手册,你会发现API并不能识别Currency数据类

型。在API手册中,osQueryPerformanceFrequencey要求的参数是一个

Large_Integer的数据结构,该数据结构由两个Long类型的数据组成。Currency实

际上也是按同样的方法来储存的。只不过在计算时被除以10000。因此你也可以写

成:, (freq/10000) / (count/10000) = freq/count。关于上面的两个API函数,

osQueryPerformanceFrequecy表示一秒内,计时器Tick了多少次;

osQueryPerformanceCounter表示从开机到现在,计时器一共Tick了多少次。二者

相除,就是从开机到现在过去了多少秒钟。