Modding Union

Modderecke => Allgemeine Modding-Fragen => Thema gestartet von: Turin Turumbar am 13. Mär 2010, 20:01

Titel: Visual Basic Problem
Beitrag von: Turin Turumbar am 13. Mär 2010, 20:01
Hallöchen,
ich habe im Moment ein Problem beim Programmieren meines Switchers und ich hoffe jemand hier im Forum kennt sich ein wenig mit VisualBasic aus und kann den Fehler finden.
Zum Problem: Der Code soll testen, ob eine Internetverbindung zum Server vorhanden ist, dies macht er, indem der Server angepingt wird. Komischerweise lief bis zur letzten Version der Code ohne Probleme, in der neuen auf einmal nicht mehr. In der neuen Version will er aber nicht mehr so, wie ich will:
Der Code wird auf XP problemlos ausgeführt, mit richtigen Ergebnis etc.
Auf Vista jedoch, wird immer angezeigt, dass keine Verbindung vorhanden ist.
Ich habe keinen Plan wo der Fehler liegt und hoffe nun auf eure Hilfe:
Dim siteResponds As Boolean
Try
siteResponds = My.Computer.Network.Ping("http://modding-union.com")
Catch
siteResponds = False
End Try
MsgBox(siteResponds)
Auf Vista, gibt er nun, egal ob Verbindung vorhanden oder nicht, False aus, auf XP dagegen funktioniert alles einwandfrei. Hoffe jemand kann mir helfen...



Turin
Titel: Re: Visual Basic Problem
Beitrag von: Alien aka Infiltrator am 13. Mär 2010, 20:15
Wesentlich simplere überlegung:
Ping doch mal mit der eingabeaufforderung vll hat die firewall was gegen das pingen...
Titel: Re: Visual Basic Problem
Beitrag von: LastElb am 13. Mär 2010, 20:21
Das mit der Firewall wäre auch mein erster Hinweis gewesen. Ansonsten benutze ich bei meinem Updatemechanismus folgendes:
    Function updateversion() As String
        Dim IoStream As System.IO.Stream
        Dim StrRead As System.IO.StreamReader
        Try
            ' Einen WebRequest für den URL erzeugen
            Dim Request As System.Net.WebRequest = System.Net.WebRequest.Create("http://www.irgendeine-website.com/version.txt")
            ' Die Antwort auf den Request in einen Stream legen
            IoStream = Request.GetResponse.GetResponseStream
            ' Einen StreamReader erzeugen, der den Stream ausliest
            StrRead = New System.IO.StreamReader(IoStream)
            ' Den Quellcode des URLs zurückgeben
            updateversion = StrRead.ReadToEnd
            StrRead.Close()
            IoStream.Close()
        Catch ex As Exception ' bei beliebigem Fehler
            Return "Error"
        End Try
    End Function
Titel: Re: Visual Basic Problem
Beitrag von: Turin Turumbar am 13. Mär 2010, 20:22
Bereits getestet, per Eingabeaufforderung funktioniert es tadellos.
Habe grade auch nochmal das getestet:
If My.Computer.Network.Ping("http://modding-union.com/") = False Then
siteResponds = False
End If
if My.Computer.Network.Ping("http://modding-union.com/") = True Then
siteResponds = True
End If
Auch das funktioniert auf XP Tadellos, auf Vista crasht das Programm mit diesem Fehler:
Zitat
Während einer Pinganforderung ist eine Ausnahme aufgetreten. ---> System.Net.Sockets.Socke tException: Der angegebene Host ist unbekannt


Edit: Grad per Google die Lösung gefunden: Das http:// und der / am Ende müssen weg und das ganze funktioniert auch auf Vista, wie soll man bitteschön auf so etwas banales kommen. o.O
Der Code funktioniert jetzt auf jeden Fall wieder richtig, danke trotzdem für eure Hilfe. ;)