beckslevel91
Goto Top

Visual Basic 2008 - Netzwerkkontrolle

Hallo,

ich benutze Visual Basic 2008 Express und habe folgendes Problem:

Ich habe ein Programm mit mehreren Labels und einem Timer erstellt. Mithilfe des Timers werden die Informationen jede Sekunde aktualisiert. Es geht darum, den Netzwerkstatus und eine funktionierende Internetanbindung zu kontrollieren (Mithilfe von Pings), und das Ergebnis in die Labels einzutragen. Das funktioniert soweit ganz toll.

Jetzt möchte ich, dass er auf C:/ eine Textdatei (Logfile.txt) erstellt und jedes Mal, wenn die Netzwerkverbindung ihren Status ändert (v. True auf False od. umgekehrt) soll er mir das mit Uhrzeit reinschreiben. Das funktioniert auch aber nicht so wie ich es möchte. Jetzt schreibt er mir den Status nämlich jede Sekunde rein, unabhängig davon ob er sich geändert hat oder nicht.

Wie schaffe ich es, dass er das nur bei sich änderndem Status macht??

Hier der Code:

Option Explicit On
Imports System.IO
Public Class Form1
    Dim fs As FileStream
    Dim sw As StreamWriter
    Dim netstat As Boolean
    Dim istat As Boolean
    Dim dateiname As String = "C:\Logfile.txt"  

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

        Label1.Text = My.Computer.Clock.LocalTime
        '-----------------------------------------------------  
        If My.Computer.Network.Ping("IP_DES_SERVERS") = True Then  
            Label2.Text = "Netzwerkverbindung: Aktiv"  
                Try
                    fs = New FileStream(dateiname, FileMode.Append)
                    sw = New StreamWriter(fs)
                    sw.WriteLine(Label2.Text & "  " & My.Computer.Clock.LocalTime & " " & My.User.Name & " " & My.Computer.Name)  
                    sw.Close()

                Catch ex As IOException
                    MsgBox(ex.Message)
                End Try
            End If

        Else
            Label2.Text = "Netzwerkverbindung: Inaktiv"  
            Try
                    fs = New FileStream(dateiname, FileMode.Append)
                    sw = New StreamWriter(fs)
                    sw.WriteLine(Label2.Text & " " & My.Computer.Clock.LocalTime & " " & My.User.Name & " " & My.Computer.Name)  
                    sw.Close()
            Catch ex As IOException
                MsgBox(ex.Message)
            End Try
        End If
        '-----------------------------------------------------  
        Label3.Text = My.User.Name
        '-----------------------------------------------------  
        Label4.Text = My.Computer.Name
        '-----------------------------------------------------  
        If My.Computer.Network.Ping("IP_DER_FIREWALL") = True Then  
            Label5.Text = "Internet   Connected"  
            istat = True
            Try
                    fs = New FileStream(dateiname, FileMode.Append)
                    sw = New StreamWriter(fs)
                    sw.WriteLine(Label5.Text & " " & My.Computer.Clock.LocalTime & " " & My.User.Name & " " & My.Computer.Name)  
                    sw.Close()

            Catch ex As IOException
                MsgBox(ex.Message)
            End Try
        Else
            Label5.Text = "Internet   Disconnected"  
            istat = False
            Try
                    fs = New FileStream(dateiname, FileMode.Append)
                    sw = New StreamWriter(fs)
                    sw.WriteLine(Label5.Text & " " & My.Computer.Clock.LocalTime & " " & My.User.Name & " " & My.Computer.Name)  
                    sw.Close()
            Catch ex As IOException
                MsgBox(ex.Message)
            End Try
        End If
    End Sub



So sieht das Ergebnis aus:
http://lh4.ggpht.com/_IIFPMGH555U/SavkcsVOb2I/AAAAAAAAABI/s7Ea3cAPiU8/s ...

Wäre echt superdankbar, für Hilfen!!!!

Gruß,

J.R.

Content-Key: 110341

Url: https://administrator.de/contentid/110341

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: dog
dog 02.03.2009 um 16:20:43 Uhr
Goto Top
Na, wie wärs z.B. mit

Dim connectionState, lastState As Boolean
connectionState = My.Computer.Network.Ping("IP_DES_SERVERS")  

If connectionState <> lastState Then
        [dein ganzer code]
        lastState = connectionState
End If

Grüße

Max