23. Mai 2024, 23:16 Hallo Gast.
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge. Hierbei werden gemäß Datenschutzerklärung Benutzername und Passwort verschlüsselt für die gewählte Dauer in einem Cookie abgelegt.


Select Boards:
 
Language:
 


Autor Thema: Visual Basic Problem  (Gelesen 1363 mal)

Turin Turumbar

  • Administrator
  • Hüter von Anduril
  • *****
  • Beiträge: 3.703
Visual Basic Problem
« 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

Alien aka Infiltrator

  • Held von Helms Klamm
  • ***
  • Beiträge: 1.236
  • Edain was good ;-)
Re: Visual Basic Problem
« Antwort #1 am: 13. Mär 2010, 20:15 »
Wesentlich simplere überlegung:
Ping doch mal mit der eingabeaufforderung vll hat die firewall was gegen das pingen...

LastElb

  • Bibliothekar Bruchtals
  • **
  • Beiträge: 271
Re: Visual Basic Problem
« Antwort #2 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

Turin Turumbar

  • Administrator
  • Hüter von Anduril
  • *****
  • Beiträge: 3.703
Re: Visual Basic Problem
« Antwort #3 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. ;)
« Letzte Änderung: 13. Mär 2010, 20:27 von Turin Turumbar »