Progressbar will einfach nicht

  • Haallo. Ich arbeite grad am Update-Script, es läuft auch alles wie es sein soll, aaaaber die Progressbar will nicht. :thumbdown:

    Könntet ihr euch das bitte ma anschauen?

    Spoiler anzeigen
    [autoit]

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

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

    Opt("MustDeclareVars",1)

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

    Global $VersionsInfo = "xxx"
    Global $Neueversion = "xxx"
    Global $ProgrammVersion = "1.0", $Version
    Global $Form1, $Update, $Abbrechen, $Progress1, $Info
    Global $nMsg
    Global $Ini, $i, $int
    Global $Size, $SizeDH, $File, $aInfo, $iSize, $iPercent

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

    $Form1 = GUICreate("xxx |--> Updater", 349, 123, 192, 124)
    $Update = GUICtrlCreateButton("Update", 16, 80, 75, 25, $WS_GROUP)
    $Abbrechen = GUICtrlCreateButton("Abbrechen", 253, 81, 75, 25, $WS_GROUP)
    $Progress1 = GUICtrlCreateProgress(11, 15, 325, 44)
    $Info = GUICtrlCreateButton("Info", 131, 81, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Abbrechen
    Exit
    Case $Info
    MsgBox(0,"Info","Dieser Updater gehört zum xxx Center!")
    Case $Update
    $Ini = InetGet ($VersionsInfo,@ScriptDir & "\Update\Version.ini") ;Läd die Version.txt vom Webspace herunter und wandelt si in Version.ini um.
    If $Ini = 0 Then
    MsgBox(0,"ERROR","Es ist ein Fehler aufgetreten!" & @CRLF & "Bitte informiere den Hersteller.");Überprüft ob der Download erfolgt ist
    Else
    $Update = MsgBox (4,"Update","Eine neue Version ist verfügbar." & @CRLF & "Soll diese jetzt herunter geladen weden?")
    FileDelete(@ScriptDir & "\Update\Version.ini")
    If $Update = 6 Then

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

    $Size = InetGetSize($Neueversion) ;Bestimmen der Datei größe
    $i = 1
    $SizeDH = Execute($Size/100) ;Dateigröße durch 100 teilen
    $int = $SizeDH
    $File = InetGet($Neueversion,"NewUpdater.exe",0,1) ;läd die neue version herunter
    Do
    $aInfo = InetGetInfo($File)
    Sleep(250)
    $iPercent = Round($aInfo[0] / $iSize * 100,2)
    if $iPercent <> GUICtrlRead($Progress1) Then
    if $iSize = 0 and $aInfo[1] <> 0 Then $iSize= $aInfo[1]
    ;GUICtrlSetData($lblDatei,$sUrl & " " & $aInfo[0] & "/" & $iSize)
    GUICtrlSetData($Progress1,$iPercent)
    EndIf
    ;EndIf
    ;WEnd

    Until $aInfo[2]
    InetClose($File) ; Handle schließen um die Resourcen freizugeben

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

    If $File = 0 Then
    MsgBox(0,"ERROR","Es ist ein Fehler aufgetreten bitte informiren sie den Hersteller!2")
    Exit
    Else
    MsgBox(0,"Download erfolgt","Das Update wurde erfolgreich heruntergeladen!")
    Exit
    EndIf
    If $Update = 7 Then
    Exit
    EndIf
    EndIf
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    MfG :)

    2 Mal editiert, zuletzt von Deep Volcano (21. April 2011 um 18:30)

  • Setz in Zeile 48

    [autoit]

    $iPercent = Round($aInfo[0] / $iSize * 100,2)

    [/autoit]


    mal klammern

    [autoit]

    $iPercent = Round(($aInfo[0] / $iSize) * 100,2)

    [/autoit]


    und $iSize ist beim ersten Aufruf = "" und nicht gleich 0, kann auch daran liegen

  • würde man es durch

    [autoit]

    iSize = "0"

    [/autoit]

    lösen können? (deklalieren)

    //edit: hilft nich..

  • klar, kannste natürlich direkt oben in deinen Globalen Variablen = 0 setzen

  • Funktioniert der Download selber oder funktioniert der auch nicht?
    Bei manchen Freehoster kommt es vor das man mit AutoIt nicht einfach so etwas runterladen kann, das kann man aber leicht umgehen in dem man das oben im Script einfügt:

    [autoit]

    HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")

    [/autoit]
  • Wenn ich hiermit eine Datei von meiner Homepage runterlade zeigt die Progressbar die richtige Prozentzahl an und alles funktioniert einwandfrei. Gibt InetGetSize die richtige Dateigröße zurück?

    Spoiler anzeigen
    [autoit]

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

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

    Opt("MustDeclareVars", 1)
    HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
    Global $VersionsInfo = "xxx"
    Global $Neueversion = "xxx"
    Global $ProgrammVersion = "1.0", $Version
    Global $Form1, $Update, $Abbrechen, $Progress1, $Info
    Global $nMsg
    Global $Ini, $i, $int
    Global $Size = 0, $SizeDH, $File, $aInfo, $iSize, $iPercent

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

    $Form1 = GUICreate("xxx |--> Updater", 349, 123, 192, 124)
    $Update = GUICtrlCreateButton("Update", 16, 80, 75, 25, $WS_GROUP)
    $Abbrechen = GUICtrlCreateButton("Abbrechen", 253, 81, 75, 25, $WS_GROUP)
    $Progress1 = GUICtrlCreateProgress(11, 15, 325, 44)
    $Info = GUICtrlCreateButton("Info", 131, 81, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Abbrechen
    Exit
    Case $Info
    MsgBox(0, "Info", "Dieser Updater gehört zum xxx Center!")
    Case $Update
    $Ini = InetGet($VersionsInfo, @ScriptDir & "\Update\Version.ini") ;Läd die Version.txt vom Webspace herunter und wandelt si in Version.ini um.
    If $Ini = 0 Then
    MsgBox(0, "ERROR", "Es ist ein Fehler aufgetreten!" & @CRLF & "Bitte informiere den Hersteller.");Überprüft ob der Download erfolgt ist
    Else
    $Update = MsgBox(4, "Update", "Eine neue Version ist verfügbar." & @CRLF & "Soll diese jetzt herunter geladen weden?")
    FileDelete(@ScriptDir & "\Update\Version.ini")
    If $Update = 6 Then

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

    $Size = InetGetSize($Neueversion) ;Bestimmen der Datei größe
    ConsoleWrite($Size)
    $i = 1
    $SizeDH = Execute($Size / 100) ;Dateigröße durch 100 teilen
    $int = $SizeDH
    $File = InetGet($Neueversion, "NewUpdater.exe", 0, 1) ;läd die neue version herunter
    Do
    $aInfo = InetGetInfo($File)
    Sleep(250)
    $iPercent = Round($aInfo[0] / $iSize * 100, 2)
    If $iPercent <> GUICtrlRead($Progress1) Then
    If $iSize = 0 And $aInfo[1] <> 0 Then $iSize = $aInfo[1]
    ;GUICtrlSetData($lblDatei,$sUrl & " " & $aInfo[0] & "/" & $iSize)
    GUICtrlSetData($Progress1, $iPercent)
    EndIf
    ;EndIf
    ;WEnd

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

    Until $aInfo[2]
    InetClose($File) ; Handle schließen um die Resourcen freizugeben

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

    If $File = 0 Then
    MsgBox(0, "ERROR", "Es ist ein Fehler aufgetreten bitte informiren sie den Hersteller!2")
    Exit
    Else
    MsgBox(0, "Download erfolgt", "Das Update wurde erfolgreich heruntergeladen!")
    Exit
    EndIf
    If $Update = 7 Then
    Exit
    EndIf
    EndIf
    EndIf
    EndSwitch
    WEnd

    [/autoit]

  • (Wenn Freehost)
    welcher Hoster?

  • habs ma getestet..

    [autoit]

    MsgBox (0, "", $Size)

    [/autoit]

    Er gibt das richtige zurück. 1691648

    (ist nicht das richtige Prog, nur eine Testdatei.^^)

    ich versuch ma nen Acc bei Square7 zu machen und es da zu testen. ich bin jetzt bei funpic..

  • Setz mal bei deinem inetget den Parameter so, dass nicht auf den Cache zurückgegriffen wird:

    0 = (Standard) Holt die Datei aus dem lokalen Cache, wenn vorhanden.
    1 = Erzwingt ein erneutes Laden von der Remote-Seite

    EDIT:

    Den Sinn dieser beiden Zeilen versteh ich auch nicht ganz. Execute brauchste hier nicht und Warum kopierst du den Inhalt in die Variable $int ? Wenn du sicherstellen wolltest, dass du einen Integer hast verwende $sizeDH = int($SizeDH)

    [autoit]


    $SizeDH = Execute($Size/100) ;Dateigröße durch 100 teilen
    $int = $SizeDH

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (20. April 2011 um 14:42)

  • meinst bei der Versionsinfo? Habs getan, danke.

    @Square 7: Noch Error 404..muss noch bissl abwarten.

  • noch eine kurze Frage.. : Wie kann ich die Downloadgeschwindigkeit berechnen lassen? Und wie kann ich den Downloadfortschritt in % angeben lassen..^^

    Das mit dem Downloadfortschritt:

    Würde das so gehen?

    [autoit]

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

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

    ProcessClose ( "xxx" )

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

    Opt("MustDeclareVars", 1)
    HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
    Global $VersionsInfo = "xxx"
    Global $Neueversion = "xxx"
    Global $ProgrammVersion = "1.0", $Version
    Global $Form1, $Update, $Abbrechen, $Progress1, $Info
    Global $nMsg
    Global $Ini, $i, $int
    Global $Size = 0, $SizeDH, $File, $aInfo, $iPercent
    Global $GStatus, $gesamt, $Label1, $geladen, $Downloadgeschwindigkeit

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

    $Form1 = GUICreate("xxx |--> Updater", 349, 123, 192, 124)
    $Update = GUICtrlCreateButton("Auf Updates prüfen", 8, 88, 121, 25, $WS_GROUP)
    $Abbrechen = GUICtrlCreateButton("Beenden", 248, 88, 89, 25, $WS_GROUP)
    $Progress1 = GUICtrlCreateProgress(16, 24, 313, 25)
    $Info = GUICtrlCreateButton("Info", 144, 88, 89, 25, $WS_GROUP)
    $GStatus = GUICtrlCreateLabel("Geladen", 16, 56, 34, 17)
    $gesamt = GUICtrlCreateLabel("gesamt", 80, 56, 38, 17)
    $Label1 = GUICtrlCreateLabel("/", 64, 56, 9, 25)
    $geladen = GUICtrlCreateLabel("fertig.", 128, 56, 30, 17)
    $Downloadgeschwindigkeit = GUICtrlCreateLabel("250 kb/s", 280, 56, 47, 17)
    GUISetState(@SW_SHOW)

    [/autoit]

    Das mit dem "Geladen", "Gesamt" & "250" müsste dann automatisch immer ersetzt werden.. wie kann ich das umsetzen^^

    MfG

  • So. fast alles geschafft. :D

    Ich habs geschafft, dass die Gesamtgröße in MB angezeigt wird (InetGetInfo & umrechnen - dann CtrlSetData)

    Soo..jetzt zum Geladenen.. ich habe es raus, wie ich die Anzeige bekomme. Allerdings wie kann ich es realisieren, dass er, bis der Download fertig ist, das Script z.B. nach jeden 500 ms die Anzeige aktualisiert?

    & zur Geschwindigkeit hab ich noch gar nichts. :D

  • Schau dir mal die Hilfe zu

    [autoit]

    InetGetInfo()

    [/autoit]


    an, die parameter 0 und 2 sollten dir helfen.

    Das ganze in ner Schelife

    Spoiler anzeigen
    [autoit]

    While 1
    $dwlil = InetGetInfo($File, 0)
    Guictrlsetdata($GStatus, $dwlil / 1048576)
    $Time = @SEC
    $Bytes = Round(InetGetInfo($File, 0))
    While @SEC = $Time
    WEnd
    $NewBytes = Round(InetGetInfo($File, 0))
    Guictrlsetdata($Downloadgeschwindigkeit, ($NewBytes - $Bytes) / 1024 & "KB/s")
    If InetGetInfo($File, 2) Then
    If InetGetInfo($File, 3) Then
    Msgbox(16, "ERFOLG", "Datei wurde erfolgreich heruntergeladen")
    Exitloop
    Else
    Msgbox(16, "FEHLER", "Datei wurde nicht heruntergeladen")
    Exitloop
    EndIF
    EndIf
    WEnd

    [/autoit]

    Die Downloadspeed funktion habe ich ausm englischen Forum
    http://www.autoitscript.com/forum/topic/63…download-speed/

  • Vielen Dank.
    So sieht mein ganzes Script bisher aus:

    Spoiler anzeigen
    [autoit]

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

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

    ProcessClose ( "xxx" )

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

    Opt("MustDeclareVars", 1)
    HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
    Global $VersionsInfo = "xxx"
    Global $Neueversion = "xxx"
    Global $ProgrammVersion = "1.0", $Version
    Global $Form1, $Updatebutton, $Update, $Abbrechen, $Progress1, $Info
    Global $nMsg
    Global $Ini, $i, $int
    Global $Size = 0, $SizeDH, $SizeDH2, $SizeDH22, $File, $aInfo, $iPercent
    Global $GStatus, $gesamt, $Label1, $geladen, $Status, $MB, $Downloadgeschwindigkeit, $Gedownloaded, $GedownloadedinMB, $GedownloadedinMBgerundet, $von, $dwlil, $Time, $Bytes, $NewBytes
    Local $aData = InetGetInfo($File)

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

    $Form1 = GUICreate("xxx Center |--> Updater", 349, 123, 192, 124)
    $Updatebutton = GUICtrlCreateButton("Auf Updates prüfen", 8, 88, 121, 25, $WS_GROUP)
    $Abbrechen = GUICtrlCreateButton("Beenden", 232, 88, 105, 25, $WS_GROUP)
    $Progress1 = GUICtrlCreateProgress(8, 8, 329, 25)
    $Info = GUICtrlCreateButton("Über", 136, 88, 89, 25, $WS_GROUP)
    $gesamt = GUICtrlCreateLabel("", 56, 40, 50, 17)
    GUICtrlSetState (-1, $GUI_HIDE)
    $von = GUICtrlCreateLabel("", 48, 40, 9, 17)
    $Status = GUICtrlCreateLabel("", 96, 40, 118, 17)
    $MB = GUICtrlCreateLabel("MB", 88, 40, 20, 17)
    GUICtrlSetState (-1, $GUI_HIDE)
    $Downloadgeschwindigkeit = GUICtrlCreateLabel("", 288, 40, 47, 17)
    GUICtrlSetState (-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Abbrechen
    Exit
    Case $Info
    MsgBox(0, "Info", "Dieser Updater gehört zum xxx Center!")
    Case $Updatebutton
    GUICtrlSetState ($Updatebutton, $GUI_DISABLE)
    GUICtrlSetState ($Abbrechen, $GUI_DISABLE)
    GUICtrlSetState ($GStatus, $GUI_ENABLE)
    GUICtrlSetData ($Status, "Auf neue Version prüfen")
    $Ini = InetGet ($VersionsInfo,@ScriptDir & "\Update\Version.ini", 1) ;Läd die Version.txt vom Webspace herunter und wandelt si in Version.ini um.
    If $Ini = 0 Then
    GUICtrlSetState ($Updatebutton, $GUI_ENABLE)
    GUICtrlSetState ($Abbrechen, $GUI_ENABLE)
    GUICtrlSetData ($Status, "")
    MsgBox(0,"xxx Center","Es ist ein Fehler aufgetreten bitte informiren Sie den Hersteller!" & @CRLF & "Überprüfen Sie gegebenfalls Ihre Internetverbindung!");Überprüft ob der Download erfolgt ist
    Else
    $Version = IniRead (@ScriptDir & "\Update\Version.ini","Version","Version","");Ließt Version.ini aus
    If $Version = $ProgrammVersion Then ;Überprüft ob es eine neue Version gibt
    GUICtrlSetData ($Status, "")
    MsgBox (0,"xxx Center","Es steht kein Update zur Verfügung!")
    GUICtrlSetState ($Updatebutton, $GUI_ENABLE)
    GUICtrlSetState ($Abbrechen, $GUI_ENABLE)
    Else
    GUICtrlSetData ($Status, "")
    $Update = MsgBox(4, "xxx Center", "Eine neue Version ist verfügbar." & @CRLF & "Soll diese jetzt herunter geladen weden?")
    FileDelete(@ScriptDir & "\Update\Version.ini")
    EndIf
    If $Update = 7 Then
    MsgBox (0, "xxx Center", "Bitte holen Sie das Update schnellstmöglich nach!")
    GUICtrlSetState ($Updatebutton, $GUI_ENABLE)
    GUICtrlSetState ($Abbrechen, $GUI_ENABLE)
    EndIf
    If $Update = 6 Then
    GUICtrlSetData ($Abbrechen, $GUI_DISABLE)
    $Size = InetGetSize($Neueversion) ;Bestimmen der Datei größe
    ConsoleWrite($Size)
    $SizeDH2 = Execute($Size / 1048576) ; Bestimmen der Dateigröße in MB
    $SizeDH22 = StringFormat("%.2f\n", Round($SizeDH2 / 1, 2)); Bestimmen der Dateigröße in MB (gerundet)
    GUICtrlSetState ($gesamt, $GUI_SHOW)
    GUICtrlSetState ($MB, $GUI_SHOW)
    GUICtrlSetState ($Downloadgeschwindigkeit, $GUI_SHOW)
    GUICtrlSetState ($GStatus, $GUI_SHOW)
    GUICtrlSetData ($von, "/")
    GUICtrlSetData ($gesamt, $SizeDH22)

    $i = 1
    $SizeDH = Execute($Size / 100) ;Dateigröße durch 100 teilen
    $int = $SizeDH
    $File = InetGet($Neueversion, @ScriptDir & "\Update\UPDATE.exe", 1, 1) ;lädt die neue version herunter
    $dwlil = InetGetInfo($File, 0)
    Guictrlsetdata($GStatus, $dwlil / 1048576)
    $Time = @SEC
    $Bytes = Round(InetGetInfo($File, 0))
    While @SEC = $Time
    WEnd
    $NewBytes = Round(InetGetInfo($File, 0))
    Guictrlsetdata($Downloadgeschwindigkeit, ($NewBytes - $Bytes) / 1024 & "KB/s")
    GUICtrlSetData ($Status, "")
    Sleep (1000)
    ; $Gedownloaded = InetGetInfo ($file, 0)
    ; $GedownloadedinMB = Execute($Gedownloaded / 1048576) ; Bestimmen der Dateigröße in MB
    ; $GedownloadedinMBgerundet = StringFormat("%.2f\n", Round($GedownloadedinMB / 1, 2))
    ; GUICtrlSetData ($GStatus, $Gedownloaded)
    Do
    $aInfo = InetGetInfo($File)
    Sleep(250)
    $iPercent = Round($aInfo[0] / $Size * 100, 2)
    If $iPercent <> GUICtrlRead($Progress1) Then
    If $Size = 0 And $aInfo[1] <> 0 Then $Size = $aInfo[1]
    ;GUICtrlSetData($lblDatei,$sUrl & " " & $aInfo[0] & "/" & $Size)
    GUICtrlSetData($Progress1, $iPercent)
    EndIf
    ;EndIf
    ;WEnd

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

    Until $aInfo[2]
    InetClose($File) ; Handle schließen um die Resourcen freizugeben
    GUICtrlSetState ($Abbrechen, $GUI_ENABLE)
    GUICtrlSetState ($GStatus, $GUI_HIDE)
    GUICtrlSetState ($Downloadgeschwindigkeit, $GUI_HIDE)
    GUICtrlSetData ($Status, "Fertig")
    GUICtrlSetState ($gesamt, $GUI_HIDE)
    If $File = 0 Then
    MsgBox(0, "ERROR", "Es ist ein Fehler aufgetreten bitte informiren sie den Hersteller!")
    GUICtrlSetState ($Abbrechen, $GUI_ENABLE)
    Else

    MsgBox(0, "xxx Center", "Das Update wurde erfolgreich heruntergeladen! Es wird jetzt gestartet!" & @CRLF & @CRLF & "Bitte installieren/überschreiben Sie die neuen Dateien in das Hauptverzeichnis vom xxx Center!")
    ShellExecute (@scriptdir & "\Update\UPDATE.exe")
    GUICtrlSetState ($Abbrechen, $GUI_ENABLE)
    EndIf
    EndIf
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Er zeigt nun die Geschwindigkeit an, allerdings nur 1x ganz am Anfang. Später ändert er sie nicht mehr. Uuund..er ändert den Namen des Buttons "Beenden" bei mir in 128 während dem Download, wieso? Die heruntergeladenen MBs werden auch nich angezeigt.^^

    Global und das muss ich noch aufräumen, bin nicht dazu gekommen :D

    Aber danke, dass ich mit euch so weit kommen konnte :)

    MfG

  • Du musst die Reihenfolge beachten ^^
    Das

    [autoit]

    InetGetInfo()

    [/autoit]

    ist nicht in der Schleife, und einige Variablen sind nur deklariert, aber ohne Werte, bevor du sie benutzt.

    Als Beispiel, du declarierst oben bereits

    [autoit]

    Local $aData = InetGetInfo($File)

    [/autoit]


    aber es ist noch gar kein $File mit dem Handle von InetGet() vorhanden.

  • Hallo Deep Vulcano,

    das die KB/s nicht angezeigt werden liegt wohl daran dass du sie nie ausrechnest. Hier einmal das Skript um die kb/s ergänzt:

    Spoiler anzeigen
    [autoit]

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

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

    ;ProcessClose ( "xxx" )

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

    Opt("MustDeclareVars", 1)
    HttpSetUserAgent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)")
    Global $VersionsInfo = "xxx"
    Global $Neueversion = "xxx" ;<=========== wie kannst du hier schon wissen, dass eine neue Version mit diesem Namen existiert?
    Global $ProgrammVersion = "1.0", $Version
    Global $Form1, $Updatebutton, $Update, $Abbrechen, $Progress1, $Info
    Global $nMsg
    Global $Ini, $i, $int
    Global $Size = 0, $SizeDH, $SizeDH2, $SizeDH22, $File, $aInfo, $iPercent
    Global $lblFortschritt, $gesamt, $Label1, $geladen, $Status, $MB, $Downloadgeschwindigkeit, $Gedownloaded, $GedownloadedinMB, $GedownloadedinMBgerundet, $von, $dwlil, $Time, $Bytes, $NewBytes
    Local $aData; = InetGetInfo($File) ;<<======== InetgetInfo holt Info über einen im Hintergrund laufenden Download (InetGet) es läuft aber keiner
    Local $tStart, $tDiff, $nKbSec
    $Form1 = GUICreate("xxx Center |--> Updater", 349, 123, 192, 124)
    $Updatebutton = GUICtrlCreateButton("Auf Updates prüfen", 8, 88, 121, 25, $WS_GROUP)
    $Abbrechen = GUICtrlCreateButton("Beenden", 232, 88, 105, 25, $WS_GROUP)
    $Progress1 = GUICtrlCreateProgress(8, 8, 329, 25)
    $Info = GUICtrlCreateButton("Über", 136, 88, 89, 25, $WS_GROUP)
    $gesamt = GUICtrlCreateLabel("", 56, 40, 50, 17)
    GUICtrlSetState(-1, $GUI_HIDE)
    $lblFortschritt = GUICtrlCreateLabel("", 8, 40, 250, 17)
    GUICtrlSetState(-1, $GUI_HIDE)
    $Downloadgeschwindigkeit = GUICtrlCreateLabel("", 288, 40, 47, 17)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $Abbrechen
    Exit
    Case $Info
    MsgBox(0, "Info", "Dieser Updater gehört zum xxx Center!")
    Case $Updatebutton
    GUICtrlSetState($Updatebutton, $GUI_DISABLE)
    GUICtrlSetState($Abbrechen, $GUI_DISABLE)
    GUICtrlSetData($Status, "Auf neue Version prüfen")
    $Ini = InetGet($VersionsInfo, @ScriptDir & "\Update\Version.ini", 1) ;Läd die Version.txt vom Webspace herunter und wandelt si in Version.ini um.
    $Ini = 1 ;<=========== damit mein Test funktioniert
    If $Ini = 0 Then
    GUICtrlSetState($Updatebutton, $GUI_ENABLE)
    GUICtrlSetState($Abbrechen, $GUI_ENABLE)
    GUICtrlSetData($Status, "")
    MsgBox(0, "xxx Center", "Es ist ein Fehler aufgetreten bitte informiren Sie den Hersteller!" & @CRLF & "Überprüfen Sie gegebenfalls Ihre Internetverbindung!");Überprüft ob der Download erfolgt ist
    Else
    $Version = IniRead(@ScriptDir & "\Update\Version.ini", "Version", "Version", "");Ließt Version.ini aus
    If $Version = $ProgrammVersion Then ;Überprüft ob es eine neue Version gibt
    GUICtrlSetData($Status, "")
    MsgBox(0, "xxx Center", "Es steht kein Update zur Verfügung!")
    GUICtrlSetState($Updatebutton, $GUI_ENABLE)
    GUICtrlSetState($Abbrechen, $GUI_ENABLE)
    Else
    GUICtrlSetData($Status, "")
    $Update = MsgBox(4, "xxx Center", "Eine neue Version ist verfügbar." & @CRLF & "Soll diese jetzt herunter geladen weden?")
    FileDelete(@ScriptDir & "\Update\Version.ini")
    EndIf
    If $Update = 7 Then
    MsgBox(0, "xxx Center", "Bitte holen Sie das Update schnellstmöglich nach!")
    GUICtrlSetState($Updatebutton, $GUI_ENABLE)
    GUICtrlSetState($Abbrechen, $GUI_ENABLE)
    EndIf
    If $Update = 6 Then
    $Neueversion = "http://download.lima-city.de/harrybotter/Versions/Downloader.exe" ;<============== damit ih was zum Downloaden habe
    ;GUICtrlSetData($Abbrechen, $GUI_DISABLE) ;< ============ deshalb die 128
    GUICtrlSetState($Abbrechen, $GUI_DISABLE) ;< ============ so ist es richtig
    $Size = InetGetSize($Neueversion) ;Bestimmen der Datei größe
    ConsoleWrite("Grösse: " & $Size & @CRLF)
    $SizeDH2 = Execute($Size / 1048576) ; Bestimmen der Dateigröße in MB
    $SizeDH22 = StringFormat("%.2f", Round($SizeDH2 / 1, 2)); Bestimmen der Dateigröße in MB (gerundet)
    GUICtrlSetState($lblFortschritt, $GUI_SHOW)
    GUICtrlSetState($Downloadgeschwindigkeit, $GUI_SHOW)
    If Not FileExists(@ScriptDir & "\Update") Then DirCreate(@ScriptDir & "\Update") ;<========= Verzeichniss anlegen wenn es noch bicht besteht
    $File = InetGet($Neueversion, @ScriptDir & "\Update\UPDATE.exe", 1, 1) ;lädt die neue version herunter

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

    $tStart = TimerInit() ;wird zum ausrechnen der DL geschwindigkeit benötigt
    Do
    $aInfo = InetGetInfo($File)
    Sleep(250)
    $iPercent = Round($aInfo[0] / $Size * 100, 2)
    If $iPercent <> GUICtrlRead($Progress1) Then
    $tDiff = TimerDiff($tStart) / 1000 ;wird zum ausrechnen der DL geschwindigkeit benötigt
    $nKbSec = Round($aInfo[0] / $tDiff / 1024, 1)
    GUICtrlSetData($Downloadgeschwindigkeit, $nKbSec & " KB/s")
    If $Size = 0 And $aInfo[1] <> 0 Then $Size = $aInfo[1]
    GUICtrlSetData($lblFortschritt, Round($aInfo[0] / 1048576, 2) & " / " & $SizeDH22 & " MB") ;<============ bisheriger Download in MB
    GUICtrlSetData($Progress1, $iPercent)
    EndIf
    Until $aInfo[2]
    InetClose($File) ; Handle schließen um die Resourcen freizugeben
    If $aInfo[3] Then ;<=========== muss erfolgreich gewesen sein
    GUICtrlSetData($lblFortschritt, "Fertig")
    MsgBox(0, "xxx Center", "Das Update wurde erfolgreich heruntergeladen! Es wird jetzt gestartet!" & @CRLF & @CRLF & "Bitte installieren/überschreiben Sie die neuen Dateien in das Hauptverzeichnis vom xxx Center!")
    ShellExecute(@ScriptDir & "\Update\UPDATE.exe")
    Else
    MsgBox(0, "ERROR", "Es ist ein Fehler aufgetreten bitte informiren sie den Hersteller!")
    GUICtrlSetState($Abbrechen, $GUI_ENABLE)

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

    EndIf
    GUICtrlSetState($Abbrechen, $GUI_ENABLE)
    GUICtrlSetState($Downloadgeschwindigkeit, $GUI_HIDE)
    GUICtrlSetState($lblFortschritt, $GUI_HIDE)
    EndIf
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    ;die wichtigfgsten Änderungen habe ich mit ;<======== gekennzeichnet. Einige Zeilen musst/kannst du wieder löschen. Du scheinst einen ganzen Haufen unnützer Variablen in deinem Skript mitzuführen,

    mfg atoBert