Da viele bei AutoIt immer rummeckern, dass bei Vista/7 InetGet soviel rumspinnt,
hab ich mich mal an eine gescheite UDF fürs downloaden gesetzt. In der UDF
ist eig alles erklärt, daher brauch ich hier im Thread nicht viel dazu sagen.
Man kann die Downloaddaten (% und Geschwindigkeit) entweder per GUI-Objekt
oder Progress anzeigen lassen, genaueres in der UDF, außerdem ist ein Beispiel
dabei.
Viel Spaß beim anschauen/nutzen.
Download: Mirror 1, Mirror 2, Mirror 3
LG Dawn.
Quelltext only
Source
Code
Func _download ($url, $savepath, $handle = False, $label = "", $overwrite = 1)
$bytes = InetGetSize ($url)
$sec1 = @SEC
$sec2 = @SEC
$sec3 = @SEC
$sec4 = @SEC
$dl_proc = 0
$old_calc = 0
$speed = "Wird berechnet"
$stop = False
If FileExists ($savepath) Then
If $overwrite = 1 Then
FileDelete ($savepath)
Else
$stop = True
EndIf
EndIf
If $bytes = 0 Then
Return 2
ElseIf $stop = True Then
Return 3
Else
$main = InetGet ($url, $savepath, 0, 1)
$info = InetGetInfo ($main)
If $handle = False Then
$progress = ProgressOn ("Download", "Download wurde gestartet!")
Else
GUICtrlSetData ($handle, 0)
EndIf
Do
$info = InetGetInfo ($main)
$calc = Round ($info[0] / ($bytes /100))
$sec1 = @SEC
If $sec1 <> $sec2 Then
#cs ### only works on XP ###
$size = FileGetSize ($savepath)
$speed = ($size - $dl_proc) / 1024
$dl_proc = $size
#ce ### only works on XP ###
$speed = ($info[0] - $dl_proc) / 1024
$dl_proc = $info[0]
$sec2 = @SEC
EndIf
If $handle = False Then
If $old_calc <> $calc Then
$old_calc = $calc
ProgressSet ($calc, "Download wurde zu " & $calc & "% abgeschlossen." & @CRLF & "Aktuelle Downloadgeschwindigkeit: " & $speed & "kb/s.")
EndIf
Else
$sec3 = @SEC
If $sec3 <> $sec4 Then
$sec4 = @SEC
GUICtrlSetData ($label, "Download wurde zu " & $calc & "% abgeschlossen." & @CRLF & "Aktuelle Downloadgeschwindigkeit: " & $speed & "kb/s.")
EndIf
GUICtrlSetData ($handle, $calc)
EndIf
Until $info[2] = True
If $handle = False Then
ProgressOff ()
Else
GUICtrlSetData ($label, "Download wurde erfolgreich abgeschlossen!")
EndIf
Return 1
EndIf
EndFunc
Alles anzeigen
OT: Unbanned yay, Taser du bistn NOOB.