knallfred: VBA, prüfen, ob ein Linkziel existiert

Hallo,

Ich versuche aus einem VB-Skript festzustellen, ob eine Ressource im Internet erreichbar ist.

Dazu fand ich im Netz:

Private Const FLAG_ICC_FORCE_CONNECTION = &H1
Private Declare Function CheckURL Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Long, ByVal dwReserved As Long) As Long

Function URLExist(chkUrl As String) As Boolean

If CheckURL(chkUrl, FLAG_ICC_FORCE_CONNECTION, 0&) = 0 Then

URLExist = False

Else

URLExist = True
 End If

End Function

Leider wird diese Funktion immer zu 'False' ausgewertet. z.B. 'http://www.google.com' als Parameter wird 'False'... Habt Ihr Hinweise, woran das liegt, was mache ich falsch? Kennt Ihr eine Ressource, welche mir die Funktion, die ich da nutze beschreibt?

Danke für Hinweise

  1. Kennt Ihr eine Ressource, welche mir die Funktion, die ich da nutze beschreibt?

    nein, aber microsoft.xmlhttp ist vermutlich dafür geeignet, folgender schnipsel schickt qualsi eine fire-and-forget-anfrage ab - mit ein paar extra zeilen extra, kann das script auch den status bzw die antwort (oder auch nicht antwort) auswerten

    function xmlhttp(URL)
         xmlhttp = null
         Set xml = CreateObject("Microsoft.XMLHTTP")
         xml.open "GET", URL, false
         on error resume next
         xml.send ""
      end function

    xmlhttp("http://www.example.com")

    http://support.microsoft.com/kb/290591

    1. Hallo,

      Danke für den Hinweis. Mittlerweile bin ich auch auf diesen Weg geschwenkt. Die Ursprüngliche Methode scheint nur in der Lage zu sein, zu prüfen, ob der Server überhaupt erreichbar ist, d.h. ob er überhaupt antwortet.

      Hier habe ich nun das Problem, das ich zur Nutzung die Funktion zuerst einbinden müsste. Dabei scheitere ich am Herausfinden der korrekten Signatur. Habt Ihr eine Idee, wie ich da rankomme?

      Danke.
      knallfred