VBA, prüfen, ob ein Linkziel existiert
knallfred
- programmiertechnik
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
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")
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