Timer控件的interval的最大时间只有1秒多一点,我想让程序一个小时进行一次,那我该用什么控件呢????

解决方案 »

  1.   

    Timer控件的最大时间怎么可能是一秒?计时精度是45毫秒左右,单位是毫秒。而兄弟的程序完全不需要用Timer控件,直接开一个线程,隔个几分钟就检查一次计算机的时间,时间间隔一小时的话,启动你的另外的运行部分不就行了。
      

  2.   

    TO:coyer(我想换工作了)
    那怎么开一个线程啊??这个我还没有碰到过,请能否说的具体点啊???
      

  3.   

    TO:zzlingaaa(想不到好名字) 
    计划任务不行,因为我想执行一段程序,而不是一个操作。
      

  4.   

    可以设一个变量,记录当前时间,用一个timer控件循环检查系统时间,与变量记录的时间进行比较,间隔一小时就行了。如果要在一天最后一分钟运行,则只看当前时间就行了。
      

  5.   


    我有一点小小的建议,以前做过,Private Sub Timer1_Timer()
    Dim TongHour As Integer '你要定时的小时
    Dim TongMinute As Integer '你要定时的分钟If PHour <> "" And PMinute <> "" Then
        If Len(Hour(Time)) = 1 Then
            TongHour = "0" & Hour(Time)
        Else
            TongHour = Hour(Time)
        End If
        
        If Len(Minute(Time)) = 1 Then
            TongMinute = "0" & Minute(Time)
        Else
            TongMinute = Minute(Time)
        End If
        
        If TongHour = PHour And (TongMinute >= Val(PMinute) And TongMinute < Val(PMinute + 1)) Then
            Command1_Click '你要触发的时间代码
        End If
    End If
    End Sub将timer控件的Interval设为1000(一分钟)
      

  6.   

    上面说错了一点TongHour、TongMinute 都是用于赋值的中间变量PHour、PMinute才是你要定时的小时和分钟这种方法可以保证在你设定的那一分钟内发生你要的代码,但是不保证一到这一分钟就立刻发生。
    好处是一分钟才触发一次,足够省资源了
      

  7.   

    Option ExplicitDim lngTime As LongPrivate Sub Form_Load()
        Timer1.Interval = 60000 '设置为一分钟
    End SubPrivate Sub Timer1_Timer()
        lngTime = lngTime + 1
        If lngTime = 60 Then
            MsgBox "已经到一个小时"
        End If
    End Sub
      

  8.   

    不过如果间隔时间太长的话不用TIMER控件,会很占资源,最后用系统的计划任务~~
      

  9.   

    还有就是上面有位仁兄说的sleep()函数
      

  10.   

    我又说错一点,interval是60000,不是10001000是一秒哈哈,这两天肚子拉多了
      

  11.   

    用timer控件确实比较浪费系统资源线程的方法比较好!可以有vc写一个函数用来返回系统时间将它编译为dll用vb进行进程挂接 调用该函数判断返回值如果为真启动你的程序!