求助:TIMER可以定时多长时间?

v1122 2006-06-03 10:04:32
初次使用定时控件,想定时一个小时,老是报错,不知什么原因?

时间间隔最大是多少啊

有什么办法可以定时一个小时??

急,甚盼!!!
...全文
250 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fj182 2006-06-04
  • 打赏
  • 举报
回复
Private m_LastCheck As Variant '上一次触发的时间
Private m_Interval As Long '时间间隔

Private Sub Form_Load()

'每三秒触发一次
m_Interval = 3

End Sub

Private Sub Timer1_Timer()

If IsEmpty(m_LastCheck) Then
m_LastCheck = Now
Else
'以秒为单位,也可以是分钟、小时、日、月等有效的时间单位,只需要修改DateDiff函数的第一个参数。
If Abs(DateDiff("s", Now, m_LastCheck)) >= m_Interval Then
Debug.Print "OK"
m_LastCheck = Now
End If
End If

End Sub
jackcaixia 2006-06-04
  • 打赏
  • 举报
回复
最直接的方法是用变量累加时间~
loveyouvb 2006-06-04
  • 打赏
  • 举报
回复
最长为65535
但你想间隔多长都是可以的
给个例子你
Private Sub Form_Load()
Timer1.Interval = 1000 '设置Timer1值为一秒钟
End Sub

Private Sub Timer1_Timer()
Static n As Integer
If n = 100 Then MsgBox "时间已经过了100秒" '当时间到了100秒的时候提示
n = n + 1
End Sub
kmlxk0 2006-06-04
  • 打赏
  • 举报
回复
timer控件间隔最长为65535
of123 2006-06-03
  • 打赏
  • 举报
回复
可以调用 API 得到长延时的 Timer (长达 47 天)
'模块中代码
Dim lTimerId As Long
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long

Private Sub TimerProc(ByVal lHwnd As Long, ByVal lMsg As Long, ByVal lTimerId As Long, ByVal lTime As Long)

Dim lResult As Long
lResult = StopTimer(lTimerId)

'以下放入到达延时后执行的代码
Call InsertYourProcessNameHere

End Sub

Public Sub StartTimer(lInterval As Long) '传送前将延时间隔转换为毫秒
lTimerId = SetTimer(0, 0, lInterval, AddressOf TimerProc)
End Sub

Public Function StopTimer(lTimerId As Long) As Long
'must pass the TimerId returned by SetTimer
StopTimer = KillTimer(0, lTimerId)
End Function

'调用方式
Call StartTimer(5000) '5 seconds
cyy201 2006-06-03
  • 打赏
  • 举报
回复
好像是1分多钟,设置一变量累加

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧