Hallo,
ich möchte ein kleines Programm machen,
was eine bestimmte Datei aus dem Internet saugt,
und den Status, also bei wie viel % der download liegt,
anzeigt, weiß jemand wie das geht? D:
MfG
CheesButter
Hallo,
ich möchte ein kleines Programm machen,
was eine bestimmte Datei aus dem Internet saugt,
und den Status, also bei wie viel % der download liegt,
anzeigt, weiß jemand wie das geht? D:
MfG
CheesButter
"Normaler" Download:
InetGet ( "URL" [,"filename" [, options [, background]]])
Und mit FTP geht es folgendermaßen:
While 1
[/autoit] [autoit][/autoit] [autoit]$msg = GUIGetMsg()
$server = 'ftp.xyz.de'
$username = 'Username'
$pass = "PW"
Switch $msg
Case $update
$Open = _FTP_Open('Mein FTP-Control')
$Conn = _FTP_Connect($Open, $server, $username, $pass)
_FTP_ProgressDownload($Conn, '', "file.txt")
_FTP_Close($Open)
WEnd
[/autoit]ich hab dir hier mal schnell ein Bsp. gemacht
EDIT: sorry war noch ein Fehler drinn. man muss natürlich den Prozentualen wert der progress setzten
opt("GUIOnEventMode",1)
GUICreate("Downloader",200,200)
Global $Progress = GUICtrlCreateProgress(10,80,180,20)
GUICtrlCreateButton("Donwload",70,160,60,20)
GUICtrlSetOnEvent(-1,"Download")
GUISetOnEvent(-3,"_exit")
GUISetState()
Global $Don_Link = "http://autoit.de/index.php?page=Attachment&attachmentID=10169&h=cf81466099fd49b261097e157ddc43ee418ce64f"
While 1
Sleep(100)
WEnd
Func Download()
$hDon_file = InetGet($Don_Link,@ScriptDir &"/Formel 1 Display v1.1.rar",1,1)
Do
$lokal_size = FileGetSize(@ScriptDir & "/Formel 1 Display v1.1.rar")
GUICtrlSetData($Progress,100/$lokal_size*InetGetInfo($hDon_file,1))
Sleep(400)
Until $lokal_size >= InetGetInfo($hDon_file,1)
MsgBox(0,"Fertig","Fertig")
Exit
EndFunc
Func _exit()
Exit
EndFunc
dank dir =)
funzt super :>
dank dir =)
funzt super :>
Hast du dir das heruntergeladene dann auch gleich mal angekuckt? Wenn ja kannst du ja deine Menung bzw. verbesserungsvorschläge o.ä. hier abgeben
jap bei kleinen datein funzt es super
aber sobald die datei größer wird
(habs mit ner ca 700 mb großen datei versucht)
startet der und gleich kommt die MsgBox mit Fertig
Dann hat er wahrscheinlich nur die .html Datei oder so geladen.
Hast du dir das heruntergeladene dann auch gleich mal angekuckt? Wenn ja kannst du ja deine Menung bzw. verbesserungsvorschläge o.ä. hier abgeben
Werbung machen für seine eigenes Programm in anderen Theard wo leute hilfe brauchen.
Nc
-----
In der Hilfe müsste auch ein Beispiel mit InetGet sein Dort sieht man auch wie das alles genau geht.
Werbung machen für seine eigenes Programm in anderen Theard wo leute hilfe brauchen.Nc
-----
In der Hilfe müsste auch ein Beispiel mit InetGet sein Dort sieht man auch wie das alles genau geht.
Hää. Ich hab ihm ein komplettes Bsp. gemacht und a musste man nunmal etwas downloaden und was bietet sich mehr an als eine datei direkt hier utoit Server und da ich mein Programm letztens fertig hatte wieso nicht.
vllt das überlesen :
Alles anzeigenich hab dir hier mal schnell ein Bsp. gemacht
EDIT: sorry war noch ein Fehler drinn. man muss natürlich den Prozentualen wert der progress setzten
Spoiler anzeigen
[autoit]opt("GUIOnEventMode",1)
[/autoit] [autoit][/autoit] [autoit]
GUICreate("Downloader",200,200)
Global $Progress = GUICtrlCreateProgress(10,80,180,20)
GUICtrlCreateButton("Donwload",70,160,60,20)
GUICtrlSetOnEvent(-1,"Download")
GUISetOnEvent(-3,"_exit")
GUISetState()
Global $Don_Link = "http://autoit.de/index.php?page=Attachment&attachmentID=10169&h=cf81466099fd49b261097e157ddc43ee418ce64f"While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc Download()
[/autoit] [autoit][/autoit] [autoit]
$hDon_file = InetGet($Don_Link,@ScriptDir &"/Formel 1 Display v1.1.rar",1,1)
Do
$lokal_size = FileGetSize(@ScriptDir & "/Formel 1 Display v1.1.rar")
GUICtrlSetData($Progress,100/$lokal_size*InetGetInfo($hDon_file,1))
Sleep(400)
Until $lokal_size >= InetGetInfo($hDon_file,1)
MsgBox(0,"Fertig","Fertig")
Exit
EndFuncFunc _exit()
[/autoit]
Exit
EndFunc
Ja und? Er hat ja auch geholfen.
Hää. Ich hab ihm ein komplettes Bsp. gemacht und a musste man nunmal etwas downloaden und was bietet sich mehr an als eine datei direkt hier utoit Server und da ich mein Programm letztens fertig hatte wieso nicht.
vllt das überlesen :
Ist mir schon klar , dass es sich anbietet sein Programm da rein zu schreiben.
Aber dann noch nach zufragen.. Hast du dir das Programm schon angeguckt...
No Comment.
---- Jetzt Back 2 Topic --- sonst wird hier nur Diskutiert.
jap bei kleinen datein funzt es super
aber sobald die datei größer wird
(habs mit ner ca 700 mb großen datei versucht)
startet der und gleich kommt die MsgBox mit Fertig
Ich habs nochmal etwas abgeändert, vllt hast hast du nen kleinen Fehler gemacht, der so vermieden wird.
kannst du mal dein Script posten? ist schwer ohne zu sagen, wo der fehler liegt
EDIT: noch was aufgefallen. vergessen, das Handle zu schließen :pinch:
opt("GUIOnEventMode",1)
GUICreate("Downloader",200,200)
Global $Progress = GUICtrlCreateProgress(10,80,180,20)
GUICtrlCreateButton("Donwload",70,160,60,20)
GUICtrlSetOnEvent(-1,"Download")
GUISetOnEvent(-3,"_exit")
GUISetState()
Global $Don_Link = "http://autoit.de/index.php?page=Attachment&attachmentID=10169&h=cf81466099fd49b261097e157ddc43ee418ce64f"; Downloadlink
Global $Saved_filename = "Formel 1 Display v1.1.rar" ; So wird die Datei heißen, die Gedownloadet wurde. Endung nicht vergessen.
While 1
Sleep(100)
WEnd
Func Download()
$hDon_file = InetGet($Don_Link,@ScriptDir &"/" & $Saved_filename,1,1)
Do
$lokal_size = FileGetSize(@ScriptDir & "/" & $Saved_filename)
GUICtrlSetData($Progress,100/$lokal_size*InetGetInfo($hDon_file,1))
Sleep(400)
Until $lokal_size >= InetGetInfo($hDon_file,1)
InetClose($hDon_file)
MsgBox(0,"Fertig","Fertig")
Exit
EndFunc
Func _exit()
Exit
EndFunc
Verstößt das gg die ForenRegeln? (Ist ja kein Spamen)
Also lass ihn doch.
Hallo CheesButter,
versuch mal diese Variante, die MsgBox am Ende gibt mehr Informationen:
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$sLocalFile = @DesktopDir & "\JaYT-DwiMP3-P.exe" ;YouTube-Downloader
GUICreate("Downloader", 200, 200)
Global $Status = GUICtrlCreateLabel("",10, 50, 180, 20,0x01)
Global $Progress = GUICtrlCreateProgress(10, 80, 180, 20)
GUICtrlCreateButton("Donwload", 70, 160, 60, 20)
GUICtrlSetOnEvent(-1, "Download")
GUISetOnEvent(-3, "_exit")
GUISetState()
Global $Don_Link = "http://www.autoit.de/index.php?page=Attachment&attachmentID=9962&h=67e7e3c22cfb4ce801c2728d5ac852466455cd9f"
While 1
Sleep(100)
WEnd
Func Download()
$iSizeTo = InetGetSize($Don_Link)
$hDon_file = InetGet($Don_Link, $sLocalFile, 1, 1)
if $iSizeTo = 0 Then $iSizeTo = InetGetInfo($hDon_file, 1)
$iSizeTo = Round($iSizeTo / 1024,0)
Do
$iSizeDone = Round(InetGetInfo($hDon_file, 0) / 1024,0)
$iProz = Round($iSizeDone / $iSizeTo * 100,0)
GUICtrlSetData($Progress, $iProz)
GUICtrlSetData($Status,$iSizeDone & "/" & $iSizeTo & " KB = " & $iProz & "%")
Sleep(1000)
Until InetGetInfo($hDon_file, 2)
Local $aData = InetGetInfo($hDon_file) ; Hole alle Informationen.
InetClose($hDon_file) ; Handle schließen um die Resourcen freizugeben.
MsgBox(0, "", "Bytes gelesen: " & $aData[0] & @CRLF & _
"Größe: " & $aData[1] & @CRLF & _
"Komplett?: " & $aData[2] & @CRLF & _
"Erfolgreich?: " & $aData[3] & @CRLF & _
"@error: " & $aData[4] & @CRLF & _
"@extended: " & $aData[5] & @CRLF)
Exit
EndFunc ;==>Download
Func _exit()
Exit
EndFunc ;==>_exit
die Prozentereechnung habe ich geändert (stimmt jetzt) und das DownLoad-File habe ich auch ausgetauscht,
mfg (Auto)Bert
habe grad festegstell, dass noch fehler drinn waren, bei der prozenberechnung ich dummele ^^.
Hab außerdem ne ander Downloadfile als Bsp. genommen.
EDIT: Ach Autobert ja ne Ulimate Version geposten^^
opt("GUIOnEventMode",1)
GUICreate("Downloader",200,200)
Global $Progress = GUICtrlCreateProgress(10,80,180,20)
GUICtrlCreateButton("Donwload",70,160,60,20)
GUICtrlSetOnEvent(-1,"Download")
$Lab = GUICtrlCreateLabel("Downloader",0,20,200,60,0x01)
GUICtrlSetFont($Lab, 10, 400, 0, "MS Sans Serif", 4)
GUISetOnEvent(-3,"_exit")
GUISetState()
Global $Don_Link = "http://www.the-franky.de/Desktop%20Wetter.rar"
Global $Save_filename = "Desktop Wetter.rar"
While 1
Sleep(100)
WEnd
Func Download()
Local $Don_size = InetGetSize($Don_Link)
Local $hDon_file = InetGet($Don_Link,@ScriptDir & "/" & $Save_filename ,1,1)
Do
$lokal_size = FileGetSize(@ScriptDir & "/" & $Save_filename)
GUICtrlSetData($Progress,100/$Don_size*InetGetInfo($hDon_file,1))
Sleep(400); Bei Größeren Daten Natürlich verkleinern
Until $lokal_size >= $Don_size
InetClose($hDon_file)
MsgBox(0,"Fertig","Fertig")
Exit
EndFunc
Func _exit()
Exit
EndFunc
deine Prozentberechnung ist immer noch falsch:
[autoit]GUICtrlSetData($Progress,100/$Don_size*InetGetInfo($hDon_file,1))
[/autoit]= 100 / bereits Heruntergeladen * Herunterzuladen. Angenommen das File hat 1000 Bytes, 50 davon sind bereits heruntergeladen dann kommt nach deiner Formel 100 / 50 * 1000 2000% heraus.
mfg (Auto)Bert
deine Prozentberechnung ist immer noch falsch:
[autoit]GUICtrlSetData($Progress,100/$Don_size*InetGetInfo($hDon_file,1))
[/autoit]= 100 / bereits Heruntergeladen * Herunterzuladen. Angenommen das File hat 1000 Bytes, 50 davon sind bereits heruntergeladen dann kommt nach deiner Formel 100 / 50 * 1000 2000% heraus.
mfg (Auto)Bert
Nein
hier
GUICtrlSetData($Progress,100/$Don_size*InetGetInfo($hDon_file,1))
[/autoit]
rechne ich 100 / Herunterzulanden * bereits Heruntergeladen
oder meinst du, weil keine klammern gesetzt sind.
Nach meinem Verständniss her rechnet er zuerst 100/ Herunterzulanden und das dann mal breits heruntergeladen. Also ist das doch ein Normaler Dreisatz und müsste so auch stimmer oder vertuhe ich mich jetzt kommplett?
Nein
[autoit]
hierGUICtrlSetData($Progress,100/$Don_size*InetGetInfo($hDon_file,1))
[/autoit]
rechne ich 100 / Herunterzulanden * bereits Heruntergeladen
wenn $Don_size die Gesamtgröße des Downloads ist [Edit: stimmt da $Don_size = InetGetSize($Don_Link)], rechnest du da
[autoit]InetGetInfo($hDon_file,1)
[/autoit]ja ebenfalls die Gesamtgröße des Downloads zurückgibt 100/herunterzuladen*herunterzuladen ergibt also immer 100%
mfg (Auto)Bert
ok stimmt natürlich sollte das ganze dann GUICtrlSetData($Progress,100/$Don_size*InetGetInfo($hDon_file,0)) statt GUICtrlSetData($Progress,100/$Don_size*InetGetInfo($hDon_file,1))
heißen
Was haltet ihr davon (bei mir lädt die ProgressBar nicht, vielleicht ist die Datei zu groß und es dauert zu lange)?
#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]Global $download
Global $progress
Global $size
GUICreate("Download",500,100)
GUISetState(@SW_SHOW)
$startbutton=GUICtrlCreateButton("Start",20,20,450,30)
$progressbar=GUICtrlCreateProgress(20,60,450,30)
$percentage=$progress*100/$size
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $startbutton
$download=InetGet("http://www.29soft.com/pc_game_download/download.asp?fid=914","busdriver_setup-dm.exe")
$progress=InetGetInfo($download,0)
$size=InetGetInfo($download,1)
GUICtrlSetData($progressbar,$percentage)
EndSwitch
WEnd