Ladebalken für Downloader

  • Wie kann ich einen Download Ladebalken hinzufügen:


    Spoiler anzeigen


    #include
    #include
    #cs
    1. Nach dem Aufruf der Seite mit dem Download link muss man das Formular mit der id ff absenden.
    2. Wir ziehen uns den direkten Download Link aus dem Feld action aus dem Formular dlf
    3. Dateiname soll so lauten wie die Datei bei Rapidshare
    4. Wir wollen alles Dateien aus unserer links runterladen und wenn Datie
    keine Links enthält soll das Script sofort beendet werden.
    5. Download in Schleife
    6. Wenn Datei geladen, schliesse den IE
    #ce

    ;4. Wir wollen alles Dateien aus unserer links runterladen und wenn Datei keine Links enthält soll das Script sofort beendet werden.
    ; Lade Datein
    Global $links[5]
    $links[0] = "2"
    $links[1] = "http://rapidshare.com/files/16968157CCCCCCCCCCC"
    $links[2] = "http://rapidshare.com/files/16965946CCCCCCCCCCC"

    $oIE = _IECreate("about:blank")

    ;Download in Schleife
    For $i = 1 To $links[0]

    ;Nach dem Aufruf der Seite mit dem Download link muss man das Formular mit der id ff absenden.
    _IENavigate($oIE,$links[$i])
    $oForm = _IEFormGetObjByName ($oIE, "ff")
    _IEFormSubmit ($oForm,0)
    ; -->

    ;Wir ziehen uns den direkten Download Link aus dem Feld action aus dem Formular dlf
    _IELoadWait($oIE)
    Do
    $oForm = _IEFormGetObjByName ($oIE, "dlf")
    If $oForm = 0 Then Sleep(5000)
    Until $oForm <> 0

    ;Dateiname soll so lauten wie die Datei bei Rapidshare
    $str = StringSplit($oForm.action,'/')
    ; -->
    InetGet($oForm.action,@ScriptDir & '\download\' & $str[UBound($str) -1 ],1)
    _IEQuit($oIE)
    ; -->
    Next
    ; -->
    ; <-- siehe Infos
    ; -->


    MFG
    Chrisiwbi

  • Mit InetGetSize kannst du die Größe der Datei rausfinden. Dann machst du eine ProgressBar und setzt seinen Maximalwert mit GUICtrlSetLimi auf den Wert. Danach machst du eine While @InetGetActive in der du immer wieder den Wert der Progressbar auf @InetGetBytesRead setzt.
    Beispiel:

    [autoit]

    $url = "http://www.beispiel.de/testordner/testdatei.exe" ;Adresse zur Datei
    $size = InetGetSize($url) ;Dateigröße ermitteln
    $Form1 = GUICreate("Testfenster", 232, 46, 192, 124)
    $Progress1 = GUICtrlCreateProgress(4, 4, 222, 17)
    GUICtrlSetLimit(-1, $size) ;Den maximalwert setzen
    $Label1 = GUICtrlCreateLabel("", 4, 24, 226, 17)
    GUISetState(@SW_SHOW)
    InetGet($url, "testdatei.exe", 1, 1)
    While @InetGetActive
    If GUIGetMsg() = -3 Then
    InetGet("abort")
    Exit
    EndIf
    GUICtrlSetData($Progress1, @InetGetBytesRead)
    GUICtrlSetData($Label1, @InetGetBytesRead & " von " & $size & " Bytes heruntergeladen.")
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Die Progressbar geht von 0...100%, dementsprechend muss man den Prozentwert ermitteln und per GUICtrlSetData eintragen:

    Spoiler anzeigen
    [autoit]


    #include<String.au3>
    $url = "http://SunSITE.Informatik.RWTH-Aachen.DE/ftp/pub/packages/SELFHTML/selfhtml812.zip" ;Adresse zur Datei
    $Form1 = GUICreate("Testfenster", 280, 46, 192, 124)
    $Progress1 = GUICtrlCreateProgress(5, 5, 270, 16)
    $Label1 = GUICtrlCreateLabel("Bitte warten...", 5, 25, 270, 16)
    GUISetState(@SW_SHOW)
    $size = InetGetSize($url) ;Dateigröße ermitteln
    InetGet($url, "testdatei.exe", 1, 1)
    Global $old, $iDownSize
    While @InetGetActive
    If GUIGetMsg() = -3 Then
    InetGet("abort")
    Exit
    EndIf
    $iDownSize = @InetGetBytesRead
    If $iDownSize <> $old Then
    $old = $iDownSize
    GUICtrlSetData($Progress1, 100/$size*$iDownSize)
    GUICtrlSetData($Label1, _StringAddThousandsSep($iDownSize, '.') & " von " & _StringAddThousandsSep($size, '.') & " Bytes heruntergeladen.")
    EndIf
    WEnd

    [/autoit]
  • äm das problem ist das ich noch nicht lange auto it hab
    da nützt auch die hilfe nicht sehr viel kanst du mir wenigsten einen Tip geben^^
    ein bischen kenn ich mich schon aus aber sowas kann ich nicht
    einen normalen downloader mit ladeanzeige hab ich ja zum laufen gebracht aber eine für RS

    Spoiler anzeigen

    #include
    #include
    #cs
    1. Nach dem Aufruf der Seite mit dem Download link muss man das Formular mit der id ff absenden.
    2. Wir ziehen uns den direkten Download Link aus dem Feld action aus dem Formular dlf
    3. Dateiname soll so lauten wie die Datei bei Rapidshare
    4. Wir wollen alles Dateien aus unserer links runterladen und wenn Datie
    keine Links enthält soll das Script sofort beendet werden.
    5. Download in Schleife
    6. Wenn Datei geladen, schliesse den IE
    #ce

    ;4. Wir wollen alles Dateien aus unserer links runterladen und wenn Datei keine Links enthält soll das Script sofort beendet werden.
    ; Lade Datein
    Global $links[5]
    $links[0] = "2"
    $links[1] = "http://rapidshare.com/files/16968157CCCCCCCCCCC"
    $links[2] = "http://rapidshare.com/files/16965946CCCCCCCCCCC"

    $oIE = _IECreate("about:blank")

    ;Download in Schleife
    For $i = 1 To $links[0]

    ;Nach dem Aufruf der Seite mit dem Download link muss man das Formular mit der id ff absenden.
    _IENavigate($oIE,$links[$i])
    $oForm = _IEFormGetObjByName ($oIE, "ff")
    _IEFormSubmit ($oForm,0)
    ; -->

    ;Wir ziehen uns den direkten Download Link aus dem Feld action aus dem Formular dlf
    _IELoadWait($oIE)
    Do
    $oForm = _IEFormGetObjByName ($oIE, "dlf")
    If $oForm = 0 Then Sleep(5000)
    Until $oForm <> 0

    ;Dateiname soll so lauten wie die Datei bei Rapidshare
    $str = StringSplit($oForm.action,'/')
    ; -->
    InetGet($oForm.action,@ScriptDir & '\download\' & $str[UBound($str) -1 ],1)
    _IEQuit($oIE)
    ; -->
    Next
    ; -->
    ; <-- siehe Infos
    ; -->

    Spoiler anzeigen

    #include
    $url = "http://SunSITE.Informatik.RWTH-Aachen.DE/ftp/pub/packages/SELFHTML/selfhtml812.zip" ;Adresse zur Datei
    $Form1 = GUICreate("Testfenster", 280, 46, 192, 124)
    $Progress1 = GUICtrlCreateProgress(5, 5, 270, 16)
    $Label1 = GUICtrlCreateLabel("Bitte warten...", 5, 25, 270, 16)
    GUISetState(@SW_SHOW)
    $size = InetGetSize($url) ;Dateigröße ermitteln
    InetGet($url, "testdatei.exe", 1, 1)
    Global $old, $iDownSize
    While @InetGetActive
    If GUIGetMsg() = -3 Then
    InetGet("abort")
    Exit
    EndIf
    $iDownSize = @InetGetBytesRead
    If $iDownSize <> $old Then
    $old = $iDownSize
    GUICtrlSetData($Progress1, 100/$size*$iDownSize)
    GUICtrlSetData($Label1, _StringAddThousandsSep($iDownSize, '.') & " von " & _StringAddThousandsSep($size, '.') & " Bytes heruntergeladen.")
    EndIfWEnd