Hallo,
wie kann ich mit Autoit z.b. einmal Firefox und AutoIt paralell downloaden und gleichzeitig den Fortschritt mit einem Progressbar anzeigen?
Hallo,
wie kann ich mit Autoit z.b. einmal Firefox und AutoIt paralell downloaden und gleichzeitig den Fortschritt mit einem Progressbar anzeigen?
InetGet() und GUICtrlSetData?
Aber 2x InetGet funktioniert ja, aber wie frage ich beide Einzeln ab, wie viel schon übertragen wurde?
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
Hi,
mit der neuen Beta gehts mit InetGetInfo und dem Handle, das jeder eigene Download bekommt.
anno2008
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.
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
Global $Old1 = 0
Global $Old2 = 0
$Form1 = GUICreate("Form1", 425, 55, 192, 124)
$Progress1 = GUICtrlCreateProgress(8, 8, 414, 17)
$Progress2 = GUICtrlCreateProgress(8, 32, 414, 17)
GUISetState(@SW_SHOW)
$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"
$Size_1 = InetGetSize($Download_1)
$Size_2 = InetGetSize($Download_2)
$Download_1 = InetGet($Download_1, @ScriptDir & "\Firefox.exe", 1, 1)
$Download_2 = InetGet($Download_2, @ScriptDir & "\autoit-v3-setup.exe", 1, 1)
$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
GUICtrlSetData($Progress1, Round($Download_Prozent_1))
GUICtrlSetData($Progress2, Round($Download_Prozent_2))
$Init = TimerInit()
EndIf
WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
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.
ZitatKannst 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.
3x darst du raten, was ich schon seit Tagen auf dem Rechner habe -.-
Na, mit der Beta funktioniert das:
;#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>
Global $Old1 = 0
Global $Old2 = 0
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
$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"
$Download_1 = InetGet($Download_1, @ScriptDir & "\Firefox.exe", 1, 1)
$Download_2 = InetGet($Download_2, @ScriptDir & "\autoit-v3-setup.exe", 1, 1)
$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
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)
GUICtrlSetData($Progress1, Round($Download_Prozent_1))
GUICtrlSetData($Progress2, Round($Download_Prozent_2))
WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
Sleep(50)
WEnd