Download geschwindichkeit in Kbits/s berechnen

  • Du musst die ganzen unnötigen (aber nur die unnötigen! :D) GUICtrlSetOnEvent löschen.

    Aber mal noch ne Frage. Guggst du auch, ob dein Quelltext funktioniert bevor du ihn ins Forum stellst? :P.

    Es fehlt z.B. die _LOG.au3 und es sind einige Syntaxfehler drin. Ich bin jetzt soweit, dass ich es theoretisch ausführen könnte, wenn ich den Dateinamen wissen würde :).

  • Test3.rar wäre die datei.

    Ein syntax fehler wo den?

    Aber in der sekunden rechung ist ein fehler da sitze ich auch gerade noch daran

  • Ok fehler behoben.

    [autoit]

    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.2.10.0
    Author: Matthias Reisenauer TG 11/3 (2009)
    Script Function:
    Battlefront II Updater

    #ce ----------------------------------------------------------------------------
    #include <GUIConstants.au3>
    #include <file.au3>
    #include <_LOG.au3>
    #include <Inet.au3>
    #include <Array.au3>
    $IP = _GetIP()
    _LOG("Log.txt","==================== Start des Battlefront II Updaters mit der IP: " & $IP & " ====================")
    Opt("GUIOnEventMode", 1)
    #Region START GUI
    $Form1 = GUICreate("Battlefront II Updater", 412, 595, 273, 128)
    GUISetBkColor(0x000000)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
    $Passwort = GUICtrlCreateInput("Passwort", 96, 144, 229, 20, -1)
    $PSC = ("Dark_2009")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "PasswortChange")
    GUICtrlSetCursor (-1, 5)
    $Dateiname = GUICtrlCreateInput("Dateiname", 96, 207, 229, 20, -1)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "DateinameChange")
    GUICtrlSetCursor (-1, 5)
    $Speicher_Pfad = GUICtrlCreateInput("C:\Battlefront_II_Update\", 16, 264, 373, 21, -1)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Speicher_PfadChange")
    GUICtrlSetCursor (-1, 5)
    $Install_Passwort = GUICtrlCreateInput("Installations Passwort", 98, 359, 229, 21, -1)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Install_PasswortChange")
    GUICtrlSetCursor (-1, 5)
    $Install_Pfad = GUICtrlCreateInput("C:\Programme\LucasArts\Star Wars Battlefront II\GameData\", 18, 416, 373, 21, -1)
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Install_PfadChange")
    GUICtrlSetCursor (-1, 5)
    $Button1 = GUICtrlCreateButton("Starten", 112, 560, 75, 25, 0)
    GUICtrlSetBkColor(-1, 0x00FF00)
    GUICtrlSetOnEvent(-1, "Button1Click")
    $Button2 = GUICtrlCreateButton("Ausschalten", 248, 560, 75, 25, 0)
    GUICtrlSetBkColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Button2Click")
    $Text8 = GUICtrlCreateLabel("Nichts", 200, 480, 41, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text8Click")
    $Text9 = GUICtrlCreateLabel("Schließen", 200, 504, 92, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text9Click")
    $Text10 = GUICtrlCreateLabel("Herunterfahren", 200, 528, 92, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text10Click")
    $Text7 = GUICtrlCreateLabel("Was soll passieren wenn der Prozess abgeschlossen ist?", 40, 456, 347, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text7Click")
    $Headder = GUICtrlCreatePic("DATA\Bilder\Head_Bild.jpg", 16, 0, 380, 108)
    GUICtrlSetOnEvent(-1, "HeadderClick")
    $Text1 = GUICtrlCreateLabel("Passwort für die Programm Benutzung", 96, 120, 229, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text1Click")
    $Text2 = GUICtrlCreateLabel("Datei Name des Updates", 96, 184, 229, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text2Click")
    $Text3 = GUICtrlCreateLabel("Speicherpfad des Updates", 96, 241, 229, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text3Click")
    $Text4 = GUICtrlCreateLabel("Automatische Installation?", 146, 311, 158, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text4Click")
    $Text5 = GUICtrlCreateLabel("Passwort der Installer Datei", 98, 336, 166, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text5Click")
    $Text6 = GUICtrlCreateLabel("Installations Pfad des Updates", 98, 393, 186, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetOnEvent(-1, "Text6Click")
    $Radio1 = GUICtrlCreateRadio("Radio1", 184, 480, 17, 17)
    GUICtrlSetOnEvent(-1, "Radio1Click")
    GUICtrlSetCursor (-1, 0)
    $Radio2 = GUICtrlCreateRadio("Radio2", 184, 504, 17, 17)
    GUICtrlSetOnEvent(-1, "Radio2Click")
    GUICtrlSetCursor (-1, 0)
    $Radio3 = GUICtrlCreateRadio("Radio3", 184, 528, 17, 17)
    GUICtrlSetOnEvent(-1, "Radio3Click")
    GUICtrlSetCursor (-1, 0)
    $Checkbox1 = GUICtrlCreateCheckbox("", 128, 312, 13, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetOnEvent(-1, "Checkbox1Click")
    GUICtrlSetCursor (-1, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1 ;Nichts zu bearbeiten
    Sleep(100)
    WEnd
    Func Button1Click() ;Halb Fertig
    If GUICtrlRead($Passwort) = $PSC Then
    $Programmpruefung = MsgBox(64, "Passwort Check", "Das Passwort ist Richtig! Drücke OK oder es geht in 5 Sekunden automatisch weiter ",5)
    _LOG("Log.txt","Passwort wurde richtig eingegeben")
    If $Programmpruefung = 1 or -1 Then
    _LOG("Log.txt","Die Verbindung zum Server wird überprüft")
    MsgBox(64, "Verbindungs Ceck", "Es wird überprüft ob eine verbindung zum Update Server besteht. Drücke OK oder es geht in 5 Sekunden automatisch weiter ",5)
    $ping1 = Ping("dark.bellerophontes.eu",1000) ;Verbindungstest zum Update Server
    _LOG("Log.txt","Ping 1 mit "& $ping1 & "ms")
    Sleep(500)
    $ping2 = Ping("dark.bellerophontes.eu",1000) ;Verbindungstest zum Update Server
    _LOG("Log.txt","Ping 2 mit "& $ping2 & "ms")
    Sleep(500)
    $ping3 = Ping("dark.bellerophontes.eu",1000) ;Verbindungstest zum Update Server
    _LOG("Log.txt","Ping 3 mit "& $ping3 & "ms")
    Sleep(500)
    $ping4 = Ping("dark.bellerophontes.eu",1000) ;Verbindungstest zum Update Server
    _LOG("Log.txt","Ping 4 mit "& $ping4 & "ms")
    If $ping1 And $ping2 And $ping3 And $ping4 > 0 Then
    $Ping_all_1 = (($ping1 + $ping2 + $ping3 + $ping4)/4)
    $Ping_all_2= Round($Ping_all_1, 0)
    Msgbox(64,"Verbindung Hergestellt","Eine Verbindung zum Update Server konnte hergestellt werden, beginne mit dem Download. PING: " & $Ping_all_2,5)
    _LOG("Log.txt","Verbindung Hergestellt. Druschschnitlicher Ping "& $Ping_all_2 & "ms")
    $FileURL = "http://dark.bellerophontes.eu/homepage/Map_Updates/" & GUICtrlRead($Dateiname)
    Global $FileSize = InetGetSize($FileURL)
    DirCreate(GUICtrlRead($Speicher_Pfad)) ;Erstellt den Pfad der eingegeben wurde
    InetGet($FileURL,GUICtrlRead($Speicher_Pfad) & GUICtrlRead($Dateiname),0,1)
    $P = $FileSize
    If $P = 0 Then
    _LOG("Log.txt","==================== Die Datei konnte nicht gefunden werden ====================")
    Msgbox(0,"Download Fehler","Die Datei: """&GUICtrlRead($Dateiname)&""" Konnte nicht gefunden werden. Überprüfe den Dateinamen", 10)
    Else
    Global $averagearr[1], $buffer = 0
    $R3 = $FileSize/1048576
    $File = Round($R3, 2)
    _LOG("Log.txt","Datei gefunden. Beginne Download von """ &GUICtrlRead($Dateiname)& """ mit der Größe von "&$File& " MB")
    ProgressOn("","")
    $time = TimerInit()
    While @InetGetActive
    $Percentage = @InetGetBytesRead * 100 / $FileSize
    $Prozent = Round($Percentage, 0); Umrechnung der datei von bytes in MB
    $R = $FileSize /1048576;
    $Grose= Round($R, 2);
    $R2 = @InetGetBytesRead /1048576
    $Down= Round($R2, 2)
    $iLastKbits = ((@InetGetBytesRead)/1024)
    Sleep (100)
    $iNewKbits = ((@InetGetBytesRead)/1024)
    $KB =($iNewKbits - $iLastKbits)*10
    Global $ZEIT = _average($KB)

    $Unspilt_Stunden = ($Zeit/3600)
    $Stunden = StringSplit( $Unspilt_Stunden ,".")
    $STD1 = $Stunden[1]
    $0 = ("0.")

    $Unspilt_Minuten = ($Zeit/60)
    $Minuten = StringSplit( $Unspilt_Minuten ,".")
    $MIN1 = $Minuten[1]

    $Berechnung_Sekunden = ($Zeit - ($MIN1*60))
    $SEK1 = $Berechnung_Sekunden
    ProgressSet($Percentage, & $Prozent "% (" & $Down & " MB" & " von " & $Grose & " MB Gedwonloaded)" & @CRLF & "Download Speed: "& $KB & "KB\s" &@CRLF& "Geschätzte Downloadzeit: "&$STD1&" Std. "&$MIN1&" Min. " &$SEK1& " Sek.","Download von " & GUICtrlRead($Dateiname) & " zu " & $Prozent & "% Fertig")
    Wend
    ProgressOff()


    MsgBox(64, "Download Fertig","Download ist vollständig und fertig",5)
    _LOG("Log.txt","Der Battlefront II Updater hat das Update runtergeladen in das Verzeichnis: "&GUICtrlRead($Speicher_Pfad))

    If GUICtrlRead($Checkbox1) = 1 Then ; Entpacken
    _LOG("Log.txt","Der Battlefront II Updater beginnt nun mit dem entpacken des Updates, mit dem Passwort: "&GUICtrlRead($Install_Passwort))
    Msgbox(64,"Entpacken...","Entpacken wird nun gestartet",5)
    $DPfad = StringFormat("%s%s ",GUICtrlRead($Speicher_Pfad) ,GUICtrlRead($Dateiname))
    $EPasswort = GUICtrlRead($Install_Passwort)
    $EPfad = GUICtrlRead($Install_Pfad)
    DirCreate ($EPfad)
    $Befehl = StringFormat("x -o+ -p%s %s %s %s ",$EPasswort ,$DPfad ,$EPfad)
    RunWait("Data\Unrar\Unrar.exe " & $Befehl)
    Msgbox(64,"Entpacken...","Entpacken abgeschlossen",5)
    _LOG("Log.txt","Der Battlefront II Updater hat das entpacken abgeschlossen. Das Verzeichnis lautet: "&GUICtrlRead($Install_Pfad))
    If GUICtrlRead($Radio1) = 1 Then
    EndIf

    If GUICtrlRead($Radio2) = 1 Then
    _LOG("Log.txt","==================== Das Programm beendet sich ====================")
    Msgbox(64,"Programm Beenden","Der PC wird das Programm beenden",5)
    Exit
    EndIf

    If GUICtrlRead($Radio3) = 1 Then
    _LOG("Log.txt","Das Programm beendet sich und fährt den PC runter")
    Msgbox(64,"Herunterfahren","==================== Der PC wird Heruntergefahren ====================",5)
    RunWait(@ComSpec & " /c " & "shutdown -s -t 10 ")
    Exit
    EndIf
    Else
    If GUICtrlRead($Radio1) = 1 Then
    EndIf

    If GUICtrlRead($Radio2) = 1 Then
    _LOG("Log.txt","==================== Das Programm beendet sich ====================")
    Msgbox(64,"Programm Beenden","Der PC wird das Programm beenden",5)
    Exit
    EndIf

    If GUICtrlRead($Radio3) = 1 Then
    Msgbox(64,"Herunterfahren","Der PC wird Heruntergefahren",5)
    _LOG("Log.txt","==================== Das Programm beendet sich und fährt den PC runter ====================")
    RunWait(@ComSpec & " /c " & "shutdown -s -t 10 ")
    Exit
    EndIf
    EndIf
    EndIf
    Else
    _LOG("Log.txt","==================== Der Battlefront II Updater konnte keine Verbindung mit dem Update Server herstellen, probier es später noch einmal ====================")
    Msgbox(0,"Keine Verbindung","Es konnte keine Verbindung Hergestellt werden. Probiere es später", 10)
    EndIf


    Else ;!!!Fertig!!! Programm Fehler
    _LOG("==================== Log.txt","Kritischer Programm Fehler. Das Programm beendet sich ====================")
    Msgbox(0,"Programm Fehler","Programm Fehler. Beende Programm sofort",5)
    Exit
    Endif
    Else ;!!!Fertig!!! Falsches Passwort
    _LOG("Log.txt","Das Passwort wurde Falsch eingegeben")
    MsgBox(16, "Passwort Check", "Das Passwort ist Flasch! Überprüfe das Passwort für die Programm Benutzung",5)
    EndIf
    EndFunc
    Func _average($a)
    If $a <> 0 Then
    _ArrayAdd($averagearr, $a)
    For $i = 1 To UBound($averagearr) - 1
    $buffer += $averagearr[$i]
    Next
    $buffer /= UBound($averagearr) - 1
    $buffer2 = $buffer
    Return Round((($FileSize - @InetGetBytesRead) / 1024) / $buffer2)
    EndIf
    EndFunc

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

    Func Button2Click() ;!!!Fertig!!! Programm Abschalten
    MsgBox(64, "Programm Abschaltung", "Das Programm schaltet sich in 5 Sekunden ab", 5)
    _LOG("Log.txt","==================== Der Battlefront II Updater wurde über den Ausschaltknopf beendet ==================== ")
    Exit
    EndFunc
    Func Checkbox1Click() ;Nichts zu bearbeiten
    EndFunc
    Func DateinameChange() ;Nichts zu bearbeiten
    EndFunc
    Func Form1Close() ;Fertig
    _LOG("Log.txt","==================== Der Battlefront II Updater wurde über die Close Funktion beendet ==================== ")
    Exit
    EndFunc
    Func Form1Maximize() ;Nichts zu bearbeiten
    LOG("Log.txt","Der Battlefront II Updater wurde Maximiert")
    EndFunc
    Func Form1Minimize() ;Nichts zu bearbeiten
    _LOG("Log.txt","Der Battlefront II Updater wurde Minimiert")
    EndFunc
    Func Form1Restore() ;Nichts zu bearbeiten
    _LOG("Log.txt","Der Battlefront II Updater wurde Maximiert")
    EndFunc
    Func HeadderClick() ;Nichts zu bearbeiten
    EndFunc
    Func Install_PasswortChange() ;Nichts zu bearbeiten
    EndFunc
    Func Install_PfadChange() ;Nichts zu bearbeiten
    EndFunc
    Func PasswortChange() ;Nichts zu bearbeiten
    EndFunc
    Func Radio1Click() ;Nichts zu bearbeiten
    EndFunc
    Func Radio2Click() ;Nichts zu bearbeiten
    EndFunc
    Func Radio3Click() ;Nichts zu bearbeiten
    EndFunc
    Func Speicher_PfadChange() ;Nichts zu bearbeiten
    EndFunc
    Func Text10Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text1Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text2Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text3Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text4Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text5Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text6Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text7Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text8Click() ;Nichts zu bearbeiten
    EndFunc
    Func Text9Click() ;Nichts zu bearbeiten
    EndFunc

    #cs-----------------------------------TOOLS---------------------------------------
    Test für den String: Msgbox(0,"Stringtester","Der String ist: " & GUICtrlRead($Variable))
    #ce-------------------------------------------------------------------------------

    [/autoit]

    Aber ich verliere dabei die 30 sekunden das ist der einzige nachteil daran

    EDIT: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Neuer Quelltext ist drinnen!!!!!!!!!!!!!!

    2 Mal editiert, zuletzt von Matthias_199 (27. Februar 2009 um 23:25)

  • OK problem gefunden.

    Er zeigt nun die zeit richtig an.

    Was ich fragen wollte gibt es Grobe anfänger fehler die im script sind?
    wie form der Programierung oder benutzung von Global und solche geschichten.

    Hätte ich mehr mit einbindenden func arbeiten soll und nicht das gesammte hauptscript in eine func setzen?

  • ist das so grotten schelcht das es dazu nix zu sagen gibt oder????

    so perfeckt??? :rofl: :rofl: :rofl: