Zum Inhalt springen

2 Timer parallel laufen lassen, in Sub stoppen?


pcarti

Empfohlene Beiträge

Hallo

Ich wollte folgendes Programm in Visual Studio 2008 schreiben.

Beim start soll ein Timer einen Countdown von 20min runterzählen. Ist dieser Countdown abgelaufen, werden alle IP-Adressen in einem bestimmten Bereich auf ihre "ping-Antwort" hin überprüft. Wenn alle Adressen nicht erreichbar sind, soll ein weiterer Countdown starten(5 min), nachdem sich der PC automatisch herunterfährt. Diesen Countdown kann man jedoch mit einem Klick auf den Stop-Button abbrechen, woraufhin wieder der Ping-Countdown(20min) von vorne starten soll.

Nun zu meinem Problem. Ich habe gedacht ich mach 2 Subs, einmal pingcountdown und shutdowncountdown, in denen ich die Zeit resette und die timer wieder starte. Bei der Pingüberprüfung soll der pingtimer gestoppt werden, damit er nicht ins negative zählt.

Aber das mit den Subs funktioniert nicht, der stoppt die Timer nicht. Lassen die sich nur mit einem Ereignis stoppen???

Folgenden Code hab ich grad zusammen:

Imports System.Diagnostics

Imports System

Public Class Form1

Dim ausgeschaltet As Integer = 0

Dim letzteadresse As Integer = 1

Dim letztestring As String = ""

Dim aktadresse As String = ""

Dim adressbody As String = "192.168.6."

Dim pingsekunde As Long

Dim shutdownsekunde As Long

Private Sub pingcountdown()

pingsekunde = 1200

TextBox1.Text = pingsekunde

Timer1.Enabled = True

End Sub

Private Sub shutdowncountdown()

shutdownsekunde = 300

Timer2.Enabled = True

End Sub

Private Sub ping()

TextBox1.Text = " "

For i = 1 To letzteadresse

letztestring = i.ToString

aktadresse = adressbody + letztestring

If My.Computer.Network.Ping(aktadresse, 1000) = True Then

pingcountdown()

Else

ausgeschaltet += 1

End If

Next i

If ausgeschaltet = letzteadresse Then

TextBox5.Text = "Automatisches Herunterfahren aktiviert. Zum Beenden auf Stop klicken"

Button1.Enabled = True

shutdowncountdown()

Else

End If

End Sub

Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

TextBox5.Text = " "

TextBox2.Text = " "

Timer2.Enabled = False

Button1.Enabled = False

pingcountdown()

End Sub

Public Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

pingsekunde = pingsekunde - 1

TextBox1.Text = pingsekunde

If pingsekunde = 0 Then

Timer1.Enabled = False

ping()

End If

End Sub

Public Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

shutdownsekunde = shutdownsekunde - 1

TextBox2.Text = shutdownsekunde

If shutdownsekunde = 0 Then

Process.Start("shutdown.exe", "-s -f -t 0")

End If

End Sub

Shared Sub main()

Form1.pingcountdown()

End Sub

Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged

Timer1.Enabled = False

End Sub

End Class

Das ist alles was ich bisher habe. Kenn mich noch nicht so dolle in Visual Basic aus, aber ich hatte gedacht, ich würds hinkriegen...

Bitte um Hilfe, wie ich des Problem lösen kann

Danke MfG pcarto

Link zu diesem Kommentar
Auf anderen Seiten teilen

mit start und stop gehts bei mir

    Private bla As Integer


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        bla = 50

        Timer1.Interval = 100

        Timer1.Start()

    End Sub


    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        bla = bla - 1

        If bla < 1 Then

            Timer1.Stop()

        End If

        Label1.Text = bla

    End Sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...