updater

  • ich bräuchte einen updater der Folgenede Funktionen beinhaltet:
    -Läuft im Tray
    -vergleicht die versionsnummern auf einer seite mit reinem reinen text(z.b. wingettext)
    -downloaded im hintergrund von einer bestimmten website
    -überschreibt die alten dateien

    wäre toll wenn jemand das machen könnte

    Einmal editiert, zuletzt von JuraX (16. Januar 2010 um 19:19)

  • Machen werde ich dir das nciht aber helfen: Also überprüfen auf Update am besten mit InetGet dann speichern @ScriptDir und dann Fileread, kannst dann auch vergelichen welche Version etc.
    z.B. hast du ne Datei die heißt Version Und dann lädst du die datei update runter also

    [autoit]

    If FilereadLine("Version.txt", 1) == Filereadline("Update.txt", 1) Then Run("Dein Prog.exe") Else Inetget("PfadZurDatei","NameZumSpeichern")

    [/autoit]

    ;<-- Dabei wird automatisch die alte datei überschrieben


    Das mit dem Tray einfach mit Traycreate bzw. TrayCreateMenu

    Einmal editiert, zuletzt von Leon (16. Januar 2010 um 19:00)

  • Ich würds ihm ja Kostenlos machen ohne Gegenleistung, nur hab ich grad keine Zeit, könnte dir meinen Updater geben aber dann will ich Credits in deinem Prog (für den Updater) :D

  • Mom, ich schreib dir meinen schnell um in 3min hasten
    Edit: So der Code

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

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    $Form1 = GUICreate("Update", 295, 133, 193, 125)
    $Progress1 = GUICtrlCreateProgress(32, 56, 230, 17)
    $Label1 = GUICtrlCreateLabel("Update Suche...", 110, 37, 82, 17)
    GUISetstate(@SW_SHOW)

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

    InetGet("http://DeineWebSite.de/update.upd", "update.upd")

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

    GUICtrlSetData($Progress1, 1)
    sleep(200)
    Guictrlsetdata($Progress1, 2)
    sleep(200)
    Guictrlsetdata($Progress1, 3)
    sleep(200)
    Guictrlsetdata($Progress1, 4)
    sleep(200)
    Guictrlsetdata($Progress1, 5)
    sleep(200)
    Guictrlsetdata($Progress1, 6)
    Guictrlsetdata($Progress1, 7)
    Guictrlsetdata($Progress1, 8)
    Guictrlsetdata($Progress1, 9)
    Guictrlsetdata($Progress1, 10)
    GuictrlsetData($Progress1, 11)
    sleep(500)
    Guictrlsetdata($Progress1, 12)
    Guictrlsetdata($Progress1, 13)
    Guictrlsetdata($Progress1, 14)
    Guictrlsetdata($Progress1, 15)
    Guictrlsetdata($Progress1, 16)
    Guictrlsetdata($Progress1, 17)
    Guictrlsetdata($Progress1, 18)
    Guictrlsetdata($Progress1, 19)
    Guictrlsetdata($Progress1, 20)
    GuictrlsetData($Progress1, 21)
    Guictrlsetdata($Progress1, 22)
    Guictrlsetdata($Progress1, 23)
    Guictrlsetdata($Progress1, 24)
    Guictrlsetdata($Progress1, 25)
    Guictrlsetdata($Progress1, 26)
    sleep(100)
    Guictrlsetdata($Progress1, 27)
    Guictrlsetdata($Progress1, 28)
    Guictrlsetdata($Progress1, 29)
    Guictrlsetdata($Progress1, 30)
    GuictrlsetData($Progress1, 31)
    Guictrlsetdata($Progress1, 32)
    Guictrlsetdata($Progress1, 33)
    Guictrlsetdata($Progress1, 34)
    Guictrlsetdata($Progress1, 35)
    Guictrlsetdata($Progress1, 36)
    Guictrlsetdata($Progress1, 37)
    Guictrlsetdata($Progress1, 38)
    Guictrlsetdata($Progress1, 39)
    Guictrlsetdata($Progress1, 40)
    GuictrlsetData($Progress1, 41)
    Guictrlsetdata($Progress1, 42)
    sleep(200)
    Guictrlsetdata($Progress1, 43)
    Guictrlsetdata($Progress1, 44)
    Guictrlsetdata($Progress1, 45)
    Guictrlsetdata($Progress1, 46)
    Guictrlsetdata($Progress1, 47)
    Guictrlsetdata($Progress1, 48)
    Guictrlsetdata($Progress1, 49)
    Guictrlsetdata($Progress1, 50)
    GuictrlsetData($Progress1, 51)
    Guictrlsetdata($Progress1, 52)
    sleep(10)
    Guictrlsetdata($Progress1, 53)
    Guictrlsetdata($Progress1, 54)
    Guictrlsetdata($Progress1, 55)
    Guictrlsetdata($Progress1, 56)
    Guictrlsetdata($Progress1, 57)
    Guictrlsetdata($Progress1, 58)
    Guictrlsetdata($Progress1, 59)
    Guictrlsetdata($Progress1, 60)
    sleep(789)
    GuictrlsetData($Progress1, 61)
    Guictrlsetdata($Progress1, 62)
    Guictrlsetdata($Progress1, 63)
    Guictrlsetdata($Progress1, 64)
    Guictrlsetdata($Progress1, 65)
    Guictrlsetdata($Progress1, 66)
    Guictrlsetdata($Progress1, 67)
    Guictrlsetdata($Progress1, 68)
    Guictrlsetdata($Progress1, 69)
    Guictrlsetdata($Progress1, 70)
    GuictrlsetData($Progress1, 71)
    Guictrlsetdata($Progress1, 72)
    Guictrlsetdata($Progress1, 73)
    Guictrlsetdata($Progress1, 74)
    Guictrlsetdata($Progress1, 75)
    Guictrlsetdata($Progress1, 76)
    Guictrlsetdata($Progress1, 77)
    Guictrlsetdata($Progress1, 78)
    sleep(123)
    Guictrlsetdata($Progress1, 79)
    Guictrlsetdata($Progress1, 80)
    GuictrlsetData($Progress1, 81)
    Guictrlsetdata($Progress1, 82)
    Guictrlsetdata($Progress1, 83)
    Guictrlsetdata($Progress1, 84)
    Guictrlsetdata($Progress1, 85)
    Guictrlsetdata($Progress1, 86)
    Guictrlsetdata($Progress1, 87)
    Guictrlsetdata($Progress1, 88)
    Guictrlsetdata($Progress1, 89)
    Guictrlsetdata($Progress1, 90)
    sleep(30)
    GuictrlsetData($Progress1, 91)
    Guictrlsetdata($Progress1, 92)
    Guictrlsetdata($Progress1, 93)
    Guictrlsetdata($Progress1, 94)
    Guictrlsetdata($Progress1, 95)
    sleep(200)
    Guictrlsetdata($Progress1, 96)
    Guictrlsetdata($Progress1, 97)
    Guictrlsetdata($Progress1, 98)
    sleep(200)
    Guictrlsetdata($Progress1, 99)
    sleep(500)
    Guictrlsetdata($Progress1, 100)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    EndSwitch
    Exit

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

    WEnd
    If Guictrlread($Progress1) == 100 and Filereadline("update.upd", 1) == Filereadline("Version.ver",1) Then
    InetGet("http://Website.de/updatedatei.dll/exe/etc.", "update.dll/exe/etc.")
    Else
    Run("DeineExe.exe")
    EndIf

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


    Ich weiß, das mit der Progressbar is nich grad die beste Lösung

    3 Mal editiert, zuletzt von Leon (16. Januar 2010 um 19:09)

  • xD Np hatte ich noch auf der Festplatte rumfliegen, hab eig garnet gewusst, dass ich das noch hab nur vorhin per Zufall gefunden
    Achja noch ne kleine Frage: schreibst du auch grad nen MusikPlayer über die Bass.dll? Bin auch dabei könnten uns ja vlt helfen :rofl:
    Bin da drauf gekommen wegen der Lautstörke über die Bass.dll

  • Hallo @Leon,

    hier mal ein Quick and Dirty Beispiel mit Progress, der sich am echten DownLoad orientiert:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <array.au3>

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

    $Form1 = GUICreate("Update ziehen", 295, 133, 193, 125)
    $Progress1 = GUICtrlCreateProgress(20, 56, 260, 17)

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

    $Label1 = GUICtrlCreateLabel("Update ...", 20, 37, 260, 17)
    GUISetState(@SW_SHOW)

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

    ;aus Hilfedatei-Beispielen zusammenkopiert Dateinamen also anpassen
    $Source = "http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3.3.4.0-setup.exe"
    $aFile = StringSplit($Source, "/")
    Local $dest = @TempDir & "\" & $aFile[$aFile[0]]
    ConsoleWrite($dest & @CRLF)

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

    Local $nBytes, $nSize = InetGetSize($Source)

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

    ; Advanced example - downloading in the background
    Local $hDownload = InetGet($Source, $dest, 1, 1)

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

    Do
    Sleep(1000)
    $nBytes = InetGetInfo($hDownload, 0)
    $ipercent = Floor($nBytes / $nSize * 100)
    GUICtrlSetData($Progress1, $ipercent)
    GUICtrlSetData($Label1, $nBytes & " von " & $nSize & " Bytes = " & $ipercent & "% gelesen")
    Until InetGetInfo($hDownload, 2) ; Check if the download is complete.
    Local $aData = InetGetInfo($hDownload) ; Get all information.
    InetClose($hDownload) ; Close the handle to release resourcs.
    MsgBox(0, "", "Bytes read: " & $aData[0] & @CRLF & _
    "Size: " & $aData[1] & @CRLF & _
    "Complete?: " & $aData[2] & @CRLF & _
    "Successful?: " & $aData[3] & @CRLF & _
    "@error: " & $aData[4] & @CRLF & _
    "@extended: " & $aData[5] & @CRLF)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    #cs
    ;ab hier original Leon
    If GUICtrlRead($Progress1) == 100 And FileReadLine("update.upd", 1) == FileReadLine("Version.ver", 1) Then
    InetGet("http://Website.de/updatedatei.dll/exe/etc.", "update.dll/exe/etc.")
    Else
    Run("DeineExe.exe")
    EndIf
    #ce

    [/autoit]

    mfg (Auto)Bert