InetGet kein Error - background = 1

  • Guten Abend,

    Ich habe Folgendes Problem, wenn ich mit 'InetGet' eine Datei herunterladen will und das Parament 'background' = 1 ist bekomm ich immer zurückgegeben, dass kein Error vorliegt, obwohl es den Server garnicht gibt. Kann mir jemand helfen?


    Mein Script:

    [autoit]

    $temp = InetGet("MichGibsNicht.Takatukaland", @ScriptDir & "\MichWirdsNichtGeben", 1, 1)
    While @InetGetActive
    Sleep(25)
    Wend
    If $temp = 0 Then MsgBox(0,"0","Error")
    If $temp = 1 Then MsgBox(0,"1","Kein Error")

    [/autoit]

    Vielen Dank und viele Grüße

    Einmal editiert, zuletzt von kloklo (28. September 2009 um 19:53)

  • Wenn ich die Dokumentation richtig interpretiere, dann musst Du den Fehler über @InetBytesRead abfragen, wenn der "background" Parameter gesetzt ist.

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $temp = InetGet("MichGibsNicht.Takatukaland", @ScriptDir & "\MichWirdsNichtGeben", 1, 1)
    ; Script wird fortgesetzt...

    [/autoit] [autoit][/autoit] [autoit]

    While (@InetGetActive)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(25)
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    ; Wenn Fehler, dann Meldung ausgeben.
    If (@InetGetBytesRead == -1) Then

    [/autoit] [autoit][/autoit] [autoit]

    $sMsgText = StringFormat ("Fehler!\n\nGelesene Bytes: %g", @InetGetBytesRead)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox ($MB_ICONEXCLAMATION, "Fehler", $sMsgText)
    EndIf

    [/autoit]


    Gruß
    Greenhorn


  • Hey vielen Dank! So gehts =)


    Hier nocheinmal das laufende Script:

    [autoit]

    $temp = InetGet("MichGibsNicht.Takatukaland", @ScriptDir & "\MichWirdsNichtGeben", 1, 1)
    While @InetGetActive
    Sleep(25)
    Wend
    If @InetGetBytesRead = -1 Then MsgBox(0,"Error","Error")
    If @InetGetBytesRead <> -1 Then MsgBox(0,"1","Kein Error")

    [/autoit]


    LG

    • Offizieller Beitrag
    [autoit]

    $hDownload = InetGet("MichGibsNicht.Takatukaland", @ScriptDir & "\MichWirdsNichtGeben", 1, 1)
    Do
    Sleep(250)
    Until InetGetInfo($hDownload, 2) ; Check if the download is complete.
    Local $aData = InetGetInfo($hDownload) ; Get all information.
    InetClose($hDownload) ; Close the handle to release resourcs.
    MsgBox(0, "", "Bytes read: " & $aData[0] & @CRLF & _
    "Size: " & $aData[1] & @CRLF & _
    "Complete?: " & $aData[2] & @CRLF & _
    "Successful?: " & $aData[3] & @CRLF & _
    "@error: " & $aData[4] & @CRLF & _
    "@extended: " & $aData[5] & @CRLF)

    [/autoit]
  • Vielen Dank, dass ist auch gut. Aber warum finde ich in meiner Hilfe die Funktion 'InetGetInfo' nicht ? Ist die Funktion nur in der Beta vorhanden? Habe noch 3.3.0.0.