
VB怎么用定时器来计时
我想用一个条件2触发定时器开启,等会儿用另外一个条件2终止计时!假设开启定时的格式是if(条件1)开启定时()我不知道VB里面开启定时的语句,之后是if(条件2)关闭定时...
我想用一个条件2触发定时器开启,等会儿用另外一个条件2终止计时!假设开启定时的格式是if(条件1) 开启定时()我不知道VB里面开启定时的语句, 之后是if(条件2)关闭定时! 条件1和条件2不必帮我写!我知道怎么弄!就直接用条件1和条件2代替即可!另外我还希望计时的精确度能到毫秒甚至是微秒级!怎么实现?
展开
2个回答
展开全部
计时器Timer是做不到微秒级的,毫秒的话,据说一秒只能更新18次,而且每次都加入运算严重影响计时准确,有时候5秒时间要用10秒才计完。为了准确请使用GetTickCount(毫秒为单位)
它的定义这样写
Private Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
定义变量
Dim k,t as long
触发 K=GetTickCount
结束T=GetTickCount-k
结果就是T毫秒
微秒难度太大了,一般PC不易做到,也不易实现
它的定义这样写
Private Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
定义变量
Dim k,t as long
触发 K=GetTickCount
结束T=GetTickCount-k
结果就是T毫秒
微秒难度太大了,一般PC不易做到,也不易实现
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的前面意思没听懂,后面希望毫秒到是可以实现,但微秒不会。上代码:加一个label和一个timer:
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Sub Form_Load()
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
Dim t As SYSTEMTIME
GetLocalTime t
Cls
Label1.Caption = DateSerial(t.wYear, t.wMonth, t.wDay) & " " & TimeSerial(t.wHour, t.wMinute, t.wSecond) & "." & t.wMilliseconds
End Sub
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Sub Form_Load()
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
Dim t As SYSTEMTIME
GetLocalTime t
Cls
Label1.Caption = DateSerial(t.wYear, t.wMonth, t.wDay) & " " & TimeSerial(t.wHour, t.wMinute, t.wSecond) & "." & t.wMilliseconds
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询