定时的时间通过调用SetWaitableTimer()来设置,可以设置为一个特定的时刻(如December 16, 1999 at 9:45 PM)或者一个相对的时间(如从现在起每五分钟)。函数SetWaitableTime()定时的时间参数要求LARGE_INTEGER类型。这个值应该符合在结构体FILETIME中描述的格式。如果值是正的,代表一个特定的时刻。如果值是负的,代表以100纳秒为单位的相对时间。后面的示例代码中使用的是相对时间。在调用SetWaitableTimer()函数后,定时器将在每5秒被激发一次.
BOOL SetWaitableTimer( HANDLE hTimer,const LARGE_INTEGER* pDueTime,LONG lPeriod,PTIMERAPCROUTINE pfnCompletionRoutine,LPVOID lpArgToCompletionRoutine,BOOL fResume);
pDueTime和lPeriod两个参数是一道使用的。pDueTime参数用于指明定时器何时应该第一次报时,而lPeriod参数则用于指明此后定时器应该间隔多长时间报时一次.
启动一个可等待计时器。将它设为未发信号状态 返回值 Long,非零表示成功,零表示失败。会设置GetLastError 参数表 参数 类型及说明 hTimer Long,指定一个可等待计时器的句柄 lpDueTime FILETIME,指定一个包含了64位时间值的结构。如果为正,它代表计时器要触发的时间。如果为负,它代表自
函数调用以来持续的时间。时间是以100ns为单位指定的 lPeriod Long,如果为零,这个计时器只会触发一次。否则,计时器会根据这里设置的持续时间自动重新启动(以毫秒为单位指定) pfnCompletionRoutine Long,指定零或者计时器触发时要调用的一个函数的地址。可在
标准模块中用一个函数通过AddressOf操作符提供这个地址。或者使用此类ocx控件。最终的例程采取下述形式:
Sub myfunc(ByVal lpArgToCompletion&, ByVal dwTimerLow&, ByVal dwTimerHigh&) lpArgToCompletionRoutine Long,传递给最终例程的值 fResume Long,如果为TRUE,而且系统支持电源管理,那么在计时器触发的时候,系统会退出省电模式。如设为TRUE,但系统不支持省电模式,GetLastError就会返回ERROR_NOT_SUPPORTED
适用平台