Gå til innhold

[VB6]Gjøre noe hvert 5. minutt


Anbefalte innlegg

Jeg har 5 radio buttons og 2 timere. Timerne er satt til: Timer1 = 1000 millisekunder, Timer2 500 millisekunder. Jeg har også en label som jeg bruker til å lagre tiden. Labelen viser 301 til å begynne med og heter counter.

 

Private Sub Timer1_Timer()
Dim teller As Integer
teller = counter.Caption
counter.Caption = teller - 1
End Sub

Private Sub Timer2_Timer()
If counter.Caption = 0 Then counter.Caption = 301 Else: counter.Caption = counter.Caption
End Sub

Private Sub bStart_Click()

Dim antall As Integer
If Form2.Option1.Value = True Then
antall = 1
End If
If Form2.Option2.Value = True Then
antall = 2
End If
If Form2.Option3.Value = True Then
antall = 3
End If
If Form2.Option4.Value = True Then
antall = 4
End If
If Form2.Option5.Value = True Then
antall = 5
End If

If counter.Caption = 301 Then
Timer1.Enabled = True
Select Case antall
Case 1
(blablabla osv.)
Case 2
(blablabla osv.)
Case 3
(blablabla osv.)
Case 4
(blablabla osv.)
Case 5
(blablabla osv.)
End Case
End If
End Sub

 

Problemet er at programmet bare kjører gjennom koden 1 gang. Jeg skal få det til å automatisere seg så det går hvert 5. minutt.

 

PS: Hvis noen lurte, er dette et program som sjekker om det er kommet nye tråder i et forum.

Endret av CheatEnabled
Lenke til kommentar
Videoannonse
Annonse

Bruk en teller:

' Teller antall minutter siden siste eksekvering

Private MinutesElapsed As Integer

 

' Sett denne Timers intervall-egenskap til 60000 ms

Private Sub tmrMinute_Timer()

   

    ' Et minutt har nå forløpt

    MinutesElapsed = MinutesElapsed + 1

   

    ' Se om vi har nådd fem minutter-grensen

    If MinutesElapsed >= 5 Then

        ' Din kode her

       

        ' Tilbakestill teller

        MinutesElapsed = 0

    End If

   

End Sub

Endret av aadnk
Lenke til kommentar

Skal en benytte Sleep, bør en, for å unngå at programmet låser seg, så avgjort anvende en løkke og kalle DoEvents med jevne intervaller:

' Eventuelt kan en også benytte Timer-egenskapen

Private Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)

Private Declare Function GetTickCount Lib "kernel32" () As Long

 

Public Sub Wait(ByVal Duration As Long, Optional Interval As Long = 2)

 

    Dim ToWait As Long

   

    ToWait = GetTickCount + Duration

 

    ' Fortsett inntil vi har nådd ønsket tid

    Do Until GetTickCount >= ToWait

        DoEvents

        Sleep Min(Interval, Abs(ToWait - GetTickCount))

    Loop

 

End Sub

 

' Forenkler uttrykket ovenfor

Private Function Min(A, B)

    Min = IIf(A < B, A, B)

End Function

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...