说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

计算从开机到现在用了多少秒-VB资料

HTML文档下载 WORD文档下载 PDF文档下载
计算从开机到现在用了多少秒-VB资料

下面的程序与标准的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了多少次。二者相除,就是从开机到现在过去了多少秒钟。
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘