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