高进度计时,精确到0.001秒,且不受任何干扰! |
| 作者:佚名 来源:CSDN 作者: shawls 更新:2006-8-25 21:05:35 错误报告 我要投稿 |
|
'在Project中加入一个Module,然后在其中加入以下代码: Option Explicit
Type LARGE_INTEGER lowpart As Long highpart As Long End Type
Public Declare Function QueryPerformanceCounter Lib "kernel32" _ (lpPerformanceCount As LARGE_INTEGER) As Long Public Declare Function QueryPerformanceFrequency Lib "kernel32" _ (lpFrequency As LARGE_INTEGER) As Long Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal _ uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, _ ByVal uFlags As Long) As Long Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long Public Declare Function GetTickCount Lib "kernel32" () As Long
Public lMSFreq As Long Public TimerCount As Single Public lmmCount As Single Public lTimeID As Long Public actTime1 As Long Public actTime2 As Long Public iCountStart As Single
Dim iCount As Single
'注释: timeSetEvent的回调函数 Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, _ ByVal dw1 As Long, ByVal dw2 As Long) Form1.Text2.Text = Format$(lmmCount, "00.00") lmmCount = lmmCount - 0.01 If lmmCount <= 0 Then iCountStart = 60 lmmCount = 60 TimerCount = 60 EndCount End If End Sub Sub EndCount() iCount = iCountStart iCountStart = 0 timeKillEvent lTimeID actTime2 = GetTickCount - actTime1 With Form1 .Command1.Enabled = True .Command2.Enabled = False .Timer1.Enabled = False .Text1 = "计数器记时" + Format$((60 - iCount), "00.00") + " " _ + "实际经过时间" + Format$((actTime2 / 1000), "00.00") .Text2 = "计数器记时" + Format$((60 - lmmCount), "00.00") + " " _ + "实际经过时间" + Format$((actTime2 / 1000), "00.00") .Text3 = "计数器记时" + Format$((60 - TimerCount), "00.00") + " " _ + "实际经过时间" + Format$((actTime2 / 1000), "00.00") End With End Sub
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |