2 Downloads mit Progressbar?

  • Schreibe doch ein zweites Skript, was über FileInstall eingebunden wird. Und über ControlSetData kannst du den Progress der Main-GUI steuern. Oder du suchst dir ein schönes Kommandozeilenprogramm ;)

  • Also mir fällt da nichts anderes ein als zwei Scripte zu machen und das zweite schreibt die %-Zahl irgendwo hin und das Andere Liest es aus und zeigt dann eben beide Downloads an

    EDIT:
    Mal wieder zu langsam

    mfg. Jam00

  • Hi,

    habs gerade auch zufällig gemerkt. Aber bei mir steht das InetGetInfo ein undefiniertes Funktion ist. Wieso?

    Ich hab mal etwas herumprobiert und das sit dabei herausgekommen. Aber irgendwie werden die Dateien nicht gleichzeitig heruntergeladen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $Old1 = 0
    Global $Old2 = 0

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

    $Form1 = GUICreate("Form1", 425, 55, 192, 124)
    $Progress1 = GUICtrlCreateProgress(8, 8, 414, 17)
    $Progress2 = GUICtrlCreateProgress(8, 32, 414, 17)
    GUISetState(@SW_SHOW)

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

    $Download_1 = "http://download.mozilla.org/?product=firefox-3.0.10&os=win&lang=de"
    $Download_2 = "http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe"

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

    $Size_1 = InetGetSize($Download_1)
    $Size_2 = InetGetSize($Download_2)

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

    $Download_1 = InetGet($Download_1, @ScriptDir & "\Firefox.exe", 1, 1)
    $Download_2 = InetGet($Download_2, @ScriptDir & "\autoit-v3-setup.exe", 1, 1)

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

    $Init = TimerInit()

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

    While @InetGetActive

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

    If TimerDiff($Init) > 50 Then
    $Download_Prozent_1 = 100 * FileGetSize(@ScriptDir & "\Firefox.exe") / $Size_1
    $Download_Prozent_2 = 100 * FileGetSize(@ScriptDir & "\autoit-v3-setup.exe") / $Size_2

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

    GUICtrlSetData($Progress1, Round($Download_Prozent_1))
    GUICtrlSetData($Progress2, Round($Download_Prozent_2))

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

    $Init = TimerInit()
    EndIf

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

    WEnd

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Kannst du lesen? mit der neuen BETA 3.3.1.0 kann man parallel downloaden und es gibt auch die Funktion InetGetInfo.
    Lad dir am besten auch das neue SciTe runter, das hat de Definitionen mit drin.

  • Na, mit der Beta funktioniert das:

    Spoiler anzeigen
    [autoit]

    ;#BETA
    If @AutoItVersion <> "3.3.1.0" Then Exit MsgBox(0, '', "Falsche AutoIt-Version. Benötigt Beta 3.3.1.0, aber es wird " & @AutoItVersion & " verwendet.")
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $Old1 = 0
    Global $Old2 = 0

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

    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Form1", 425, 55, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Progress1 = GUICtrlCreateProgress(8, 8, 414, 17)
    GUICtrlSetTip(-1, "FireFox")
    $Progress2 = GUICtrlCreateProgress(8, 32, 414, 17)
    GUICtrlSetTip(-1, "AutoIt v3")
    GUISetState(@SW_SHOW)
    Func _Exit()
    Exit
    EndFunc

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

    $Download_1 = "http://download.mozilla.org/?product=firefox-3.0.10&os=win&lang=de"
    $Download_2 = "http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe"

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

    $Download_1 = InetGet($Download_1, @ScriptDir & "\Firefox.exe", 1, 1)
    $Download_2 = InetGet($Download_2, @ScriptDir & "\autoit-v3-setup.exe", 1, 1)

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

    $Init = TimerInit()

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

    OnAutoItExitRegister("Cleanup")
    Func Cleanup()
    InetClose($Download_1)
    InetClose($Download_2)
    FileDelete(@ScriptDir & "\autoit-v3-setup.exe")
    FileDelete(@ScriptDir & "\Firefox.exe")
    EndFunc

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

    While InetGetInfo() ; solange es aktive Downloads gibt

    Sleep(50)

    $Download_Prozent_1 = 100 * InetGetInfo($Download_1,0)/InetGetInfo($Download_1,1)
    $Download_Prozent_2 = 100 * InetGetInfo($Download_2,0)/InetGetInfo($Download_2,1)

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

    GUICtrlSetData($Progress1, Round($Download_Prozent_1))
    GUICtrlSetData($Progress2, Round($Download_Prozent_2))

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

    WEnd

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

    While 1
    Sleep(50)
    WEnd

    [/autoit]