InetGet - Fehlermeldung bei nicht bestehender Internetverbindung

  • Hallo liebe autoit.de-Gemeinde!

    Bin ganz neu hier im Forum und habe auch schon die Suchfunktion und Google benutzt, habe aber noch keine passende Lösung in meinem Fall gefunden...

    Ich rufe eine Datei über InetGet ab. Es wird dann ja so lange geprüft, OB der Download fertig ist, BIS er fertig ist.
    Was ich nun bräuchte, wäre ein passender Befehl, der die Schleife unterbricht (ExitLoop), wenn keine Internetverbindung besteht. Sonst macht der Download ja keinen Sinn. Nach einer längeren Zeit, startet dann auch das Programm (ich schätze von AutoIt eingebauter Timeout oder so), ich möchte aber, dass das Programm normal startet und dann halt eine entsprechende Fehlermeldung anzeigt.

    Hier mein Sourcecode, mit dem alles super klappt, aber eben der Start bei nicht bestehender Internet-Verbindung ewig dauert:

    [autoit]


    Func _GetFile()
    Global $file = InetGet($file, "file.txt", 1, 1)
    Do
    Sleep(250)
    Until InetGetInfo($file, 2)
    If Not (InetGetInfo($file, 5) == 0) Then
    GUICtrlSetData($label, $error)
    EndIf
    EndFunc

    [/autoit]

    Vielen Dank im Voraus! :)

    Einmal editiert, zuletzt von Thunderbuddy (5. September 2012 um 22:18)

  • Oder man liest die Hilfe zu den Befehlen die man verwendet... ;)

    Zitat

    Zitat aus der Hilfe zu InetgetInfo()
    Parameter 4 - Der Fehlerwert für den Download. Dieser Wert ist willkürlich. Den Wert darauf zu prüfen, ob er null ist, reicht aus um den Auftritt von Fehlern festzustellen.


    ^^

    LG
    Christoph :)

  • Ping einfach eine beliebige Website an und überprüfe den Rückgabewert. ;)

    Danke! An so etwas Einfaches denkt man dann gar nicht... :D

    Oder man liest die Hilfe zu den Befehlen die man verwendet... ;)


    ^^

    Das hab ich natürlich vorher getan, aber wenn ich in meinem Script die 5 durch die 4 ersetze und überprüfe ob es ungleich 0 ist, funktioniert es auch nicht besser als vorher...
    Übrigens ist in deinem Zitat ein Fehler enthalten (möglicherweise dann auch in der Quelle, von der das stammt): Es muss geprüft werden, ob der Wert NICHT 0 ist, so steht es zumindest in der originalen englischen Hilfe... Oder eben das ist gemeint und es ist nur sehr schlecht ausgedrückt.

    [autoit]


    If Not (InetGetInfo($file, 4) == 0) Then
    GUICtrlSetData($label, $error)
    EndIf

    [/autoit]


    oder

    [autoit]


    If InetGetInfo($file, 4) <> 0 Then
    GUICtrlSetData($label, $error)
    EndIf

    [/autoit]

    Funktioniert durch beides nicht besser, das habe ich ja schon vor dem Thema hier ausprobiert... ;)

    Aber mein Problem ist ja gelöst, ich überprüfe einfach, ob meine Download-Domain erreichbar ist.