Timer1.Interval = 65535那么5分钟怎么办?

喜洋洋和灰太狼 2009-12-27 03:36:56
我想让程序每5秒钟执行一个命令 怎么实现? Timer默认最大是1分钟? 谢谢
...全文
645 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbm6666 2009-12-27
  • 打赏
  • 举报
回复
上面漏了

要添加 Command1 Text1 设定时间以 秒 为单位
cbm6666 2009-12-27
  • 打赏
  • 举报
回复
Timer控件有限制 Timer涵数有跨日的问题 使用API 应该会完美些

'*****************************************
'摘录自 CBM666编程教材 Timer篇 (马表计时器)
'*****************************************

Option Explicit '强制宣告定义变量
Private Declare Function GetTickCount& Lib "kernel32" () '计时专用的API
Dim StartTm!, ElapTm!, LeftTm! '定义变量
Private Sub Form_Load()
'将窗体居中显示 (屏幕宽度减去窗体的宽度)除以2 , (屏幕高度减去窗体的高度)除以2
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Timer1.Interval = 1: Timer1.Enabled = False '设定定时器的间隔并让它不可用
Command1.Caption = "开始计时" '给按钮命名
Me.Caption = "CBM666 的马表计时器" '给窗体标题
Text1.Text = "60" '预设定时60秒
End Sub

Private Sub Command1_Click()
If Command1.Caption = "开始计时" Then
StartTm = GetTickCount '将目前时间带给变量 StartTm 为开始的时间
Command1.Caption = "停 止"
Else
Command1.Caption = "开始计时"
Me.Caption = "CBM666 的马表计时器"
End If
Timer1.Enabled = Not Timer1.Enabled '设定定时器的可用或不可用,反相处理
End Sub

Private Sub Timer1_Timer()
ElapTm = GetTickCount - StartTm '经过的时间为现在的时间减去开始的时间
LeftTm = Val(Text1.Text) * 1000 - ElapTm
Me.Caption = "时间尚馀: " & Format(CStr(LeftTm / 1000), "0.000") & " 秒" '除以1000是因为这个API单位为毫秒
If LeftTm <= 0 Then '如果剩馀时间小於或等於0
Timer1.Enabled = False '设定定时器不可用
Me.Caption = "CBM666 的马表计时器"
Command1.Caption = "开始计时"
MsgBox "设定时间到!" '信息提示
End If
End Sub

chinaboyzyq 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xlcike 的回复:]
引用 2 楼 chinaboyzyq 的回复:
5秒钟执行一个命令?timer控件够用了


猴哥 我写错了 是5分钟 抱歉!
[/Quote]


'让Timer控件每5分钟触发一次事件

'  Timer控件的Interval属性可以设置为0到65535之间的任意直,所以用Timer触发事件的最大时间间隔'只能有65秒,
'因此如何能设置更长的时间间隔呢?可以在事件中建立代码,用系统时间确定这个时间间隔。               
Dim dtNextTime as Date

Private Sub Form_load()
 Timer1.interval=500
 Timer1.Enabled=True
 dtNextTime=DateAdd("n",5,Now)
End Sub

Private Sub Timer1_Timer()
 if Now>=dtNextTime Then
  Timer1.Enabled=False
  
  '在此加入你的代码

  dtNextTime=DateAdd("n",5,Now)
  Timer1.Enabled=True
 End if
End Sub

'此程序的关键是DateAdd函数,它用于计算在将来的五分钟内的时间。
zdingyun 2009-12-27
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Static sum As Long
sum = sum + 1
If sum >= 300 Then
Debug.Print Timer
sum = sum - 300
End If
End Sub
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chinaboyzyq 的回复:]
5秒钟执行一个命令?timer控件够用了
[/Quote]

猴哥 我写错了 是5分钟 抱歉!
chinaboyzyq 2009-12-27
  • 打赏
  • 举报
回复
5秒钟执行一个命令?timer控件够用了
用户 昵称 2009-12-27
  • 打赏
  • 举报
回复
设个变量计一下不就行了?如果程序不出错,你设一天也没问题。

7,763

社区成员

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

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