用这个,你可以改一下,试试看吧! Option Explicit ' 声明函数 Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As LARGE_INTEGER) As Long Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As LARGE_INTEGER) As Long ' 声明结构 Private Type LARGE_INTEGER LowPart As Long HighPart As Long End TypePrivate Sub Form_Load() Dim PFrequency As LARGE_INTEGER ' 获得高精度运行计数器的频率 QueryPerformanceFrequency PFrequency ' 延时 1000微妙 SleepEx (PFrequency.LowPart / 1000000) * 1000, 0 End Sub' 实现延时功能 Private Function SleepEx(ByVal LowPart As Long, HighPart As Long) As Long Dim Interval As LARGE_INTEGER Dim Privious As LARGE_INTEGER Dim Current As LARGE_INTEGER
不过用这种方法有时会罢工自己按实际情况决定吧。
微秒要到CPU那搞...看看:http://www.vckbase.com/document/viewdoc/?id=1301
本人一点意见,仅供参考。
下载地址:http://www.wugao.net/download/pf.rar
QueryPerformanceFrequency
QueryPerformanceCounter
Option Explicit
' 声明函数
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As LARGE_INTEGER) As Long
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As LARGE_INTEGER) As Long
' 声明结构
Private Type LARGE_INTEGER
LowPart As Long
HighPart As Long
End TypePrivate Sub Form_Load()
Dim PFrequency As LARGE_INTEGER
' 获得高精度运行计数器的频率
QueryPerformanceFrequency PFrequency
' 延时 1000微妙
SleepEx (PFrequency.LowPart / 1000000) * 1000, 0
End Sub' 实现延时功能
Private Function SleepEx(ByVal LowPart As Long, HighPart As Long) As Long
Dim Interval As LARGE_INTEGER
Dim Privious As LARGE_INTEGER
Dim Current As LARGE_INTEGER
' 获得高精度运行计数器的数值
Call QueryPerformanceCounter(Privious)
Current = Privious
Interval.LowPart = LowPart
Interval.HighPart = HighPart
' 通过比较两次计数器的数值的差实现精确延时
Do While (Abs((Current.HighPart * 2 ^ 16) + Current.LowPart) _
- Abs(Privious.HighPart * 2 ^ 16) + Privious.LowPart) < _
(Abs(Interval.HighPart * 2 ^ 16) + Interval.LowPart)
Call QueryPerformanceCounter(Current)
Loop
SleepEx = 0
End Function