brauche hilfe bei meinem Updater

  • ich habe vor kurzen ein kleines Radio programmiert ...
    und nun wollte ich einen Updater dafür schreiben
    dafür habe ich einmal gegoogelt und etwas gefunden...
    diesen Script hab ich dann meinen Bedürfnissen angepasst und es funktioniert auch fast perfekt
    mein Problem ist jetzt nur, dass er das eig. Programm nicht downloaded
    es wäre sehr nett von euch, wenn mir jemand helfen könnte

    und seid bitte nachsichtig mit mir ... ich weiß, dass mein Quelltext nicht die beste Übersicht hat^^
    hab auch erst vor kurzen mit AutoIT angefangen :pinch:

    Hier ist mein Quelltext

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #NoTrayIcon

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

    $Pfad = @ProgramFilesDir & "\DreamsPrograms"
    $Pfad2 = @ProgramFilesDir & "\DreamsPrograms\DreamRadio"
    $VersionsInfo = "http://dreamer68.funpic.de/Radioversion.ini"
    $oldVersion = IniRead(@ProgramFilesDir & "\DreamsPrograms\DreamRadio\Radioupdate.ini","Version","Version","NotFound")
    $NewVersion = "0.0"

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

    If Not FileExists( $Pfad ) Then
    DirCreate( $Pfad )
    EndIf

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

    If Not FileExists( $Pfad2 ) Then
    DirCreate( $Pfad2 )
    EndIf

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

    $Ini = BinaryToString(InetRead( "http://dreamer68.funpic.de/Radioversion.ini" ))
    FileWrite( $Pfad2 & "\Radioversion.ini", $Ini )

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

    $NewVersion = IniRead( $Pfad2 & "\Radioversion.ini","Version","Version","")
    If $NewVersion = $oldVersion Then
    Else
    $msg = MsgBox (4,"Update","There is a new version existing: " & $NewVersion & " ! You are using: " & $oldVersion & ". Do you want to download the new version?")
    If $msg = 7 Then
    Run( $Pfad2 & "\DreamRadio1.exe" )
    FileDelete( $Pfad2 & "\Radioversion.ini")
    ElseIf $msg = 6 Then
    $downloadLink = IniRead( $Pfad2 & "\Radioversion.ini","Version","download","NotFound")
    $dlhandle = InetGet( $downloadLink, $Pfad2 & "\DreamRadio1.exe", 0, 1 )
    ProgressOn( "", "", "",-1,-1,16 )
    $Size = InetGetSize( $downloadLink,1 )
    While Not InetGetInfo( $dlhandle, 2 )
    $Percent = ( InetGetInfo( $dlhandle,0 ) / $Size ) * 100
    ProgressSet( $Percent, $Percent & " percent")
    Sleep(1)
    WEnd
    ProgressSet(100 , "Done", "Complete")
    sleep(500)
    ProgressOff()
    IniWrite( $Pfad2 & "\Radioupdate.ini","version","version",$NewVersion)
    InetClose( $dlhandle )
    MsgBox(-1,"Success","Download Complete!")
    Run( $Pfad2 & "\DreamRadio1.exe" )
    EndIf
    FileDelete( $Pfad2 & "\Radioversion.ini")
    Exit
    EndIf

    [/autoit]

    ... und schoneinmal danke für alle die sich die Zeit nehmen und meinen Quelltext anschauen

    Einmal editiert, zuletzt von dreamer68 (27. Dezember 2012 um 17:28)

  • hab auch Windows 7 64bit ... die Ordner erstellt er mir auch aber er soll auch noch das Radio herrunterladen und starten ... und das macht er leider nicht =(

  • mein Problem ist jetzt nur, dass er das eig. Programm nicht downloaded


    Füge

    [autoit]

    HttpSetUserAgent("User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0") ; User-Agent (Header) von AutoIt3 ändern, da bei manchen Webhostern der Standard-AutoIt Header gesperrt ist

    [/autoit]

    Danach sollte es eigentlich klappen.

    mfg autoBert

  • kannst du mir bitte genauer sagen wo ich das einfügen muss ... also so dass auch ein Neuling das versteht -.- und danke dass du versuchst mir zu helfen :P

  • kannst du mir bitte genauer sagen wo ich das einfügen muss ... also so dass auch ein Neuling das versteht


    Logischerweise bevor du das 1. Mal auf funpic zugreifst, danach nützt es ja nichts.

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #NoTrayIcon

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

    $Pfad = @ProgramFilesDir & "\DreamsPrograms"
    $Pfad2 = @ProgramFilesDir & "\DreamsPrograms\DreamRadio"
    $VersionsInfo = "http://dreamer68.funpic.de/Radioversion.ini"

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

    $oldVersion = IniRead(@ProgramFilesDir & "\DreamsPrograms\DreamRadio\Radioupdate.ini","Version","Version","NotFound")
    $NewVersion = "0.0"

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

    HttpSetUserAgent("User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0") ; User-Agent (Header) von AutoIt3 ändern, da beim Webhoster dieser gesperrt ist

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

    If Not FileExists( $Pfad ) Then
    DirCreate( $Pfad )
    EndIf

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

    If Not FileExists( $Pfad2 ) Then
    DirCreate( $Pfad2 )
    EndIf

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

    $Ini = BinaryToString(InetRead( "http://dreamer68.funpic.de/Radioversion.ini" ))
    FileWrite( $Pfad2 & "\Radioversion.ini", $Ini )

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

    $NewVersion = IniRead( $Pfad2 & "\Radioversion.ini","Version","Version","")
    If $NewVersion = $oldVersion Then
    Else
    $msg = MsgBox (4,"Update","There is a new version existing: " & $NewVersion & " ! You are using: " & $oldVersion & ". Do you want to download the new version?")
    If $msg = 7 Then
    Run( $Pfad2 & "\DreamRadio1.exe" )
    FileDelete( $Pfad2 & "\Radioversion.ini")
    ElseIf $msg = 6 Then
    $downloadLink = IniRead( $Pfad2 & "\Radioversion.ini","Version","download","NotFound")
    $dlhandle = InetGet( $downloadLink, $Pfad2 & "\DreamRadio1.exe", 0, 1 )
    ProgressOn( "", "", "",-1,-1,16 )
    $Size = InetGetSize( $downloadLink,1 )
    While Not InetGetInfo( $dlhandle, 2 )
    $Percent = ( InetGetInfo( $dlhandle,0 ) / $Size ) * 100
    ProgressSet( $Percent, $Percent & " percent")
    Sleep(1)
    WEnd
    ProgressSet(100 , "Done", "Complete")
    sleep(500)
    ProgressOff()
    IniWrite( $Pfad2 & "\Radioupdate.ini","version","version",$NewVersion)
    InetClose( $dlhandle )
    MsgBox(-1,"Success","Download Complete!")
    Run( $Pfad2 & "\DreamRadio1.exe" )
    EndIf
    FileDelete( $Pfad2 & "\Radioversion.ini")
    Exit
    EndIf

    [/autoit]

    mfg autoBert

  • Daran kann es ja auch gar nicht liegen, wenn es bei mir doch tadelos funktioniert... ;)
    Der Ordner wird erstellt und die Datei heruntergeladen! Das Problem liegt in jedem Fall auf (oder vor) deinem Computer... ^^
    So jetzt gehst du mal hin und führst das hier auf deinem PC aus:

    [autoit]

    MsgBox(0, "INI-Datei:", BinaryToString(InetRead("http://dreamer68.funpic.de/Radioversion.ini")))
    InetGet("ftp://ftp1911383:galatasaray@ftp-web.funpic.de/DreamRadio1.exe", @ScriptDir & "\DreamRadio.exe")
    If @error Then
    MsgBox(0, "Herunterladen", "Fehler beim Herunterladen des Programms!")
    Else
    MsgBox(0, "Herunterladen", "Isch abe fertisch! ;D")
    EndIf

    [/autoit]

    Und dann sagst du uns was dir angezeigt wurde... ;)

    LG
    Christoph :)

    Einmal editiert, zuletzt von BinDannMalWeg (27. Dezember 2012 um 14:03)

  • Probiers mal damit:
    Geh in den Überordner, wo der Order mit deim Update erscheinen soll, mit Rechter Maustaste in die Eigenschaften --> Sicherheit und geb dir (dem Benutzer) die benötigten vollen Rechte.

    Alternativ dazu:
    Bei Sicherheit unten auf Erweitert --> Berichtigungen --> Berichtigungen ändern --> 1. Haken entfernen (auf Hinzufügen klicken wenn Popup erscheint) --> 2. Haken setzen und auf Übernehmen

    • Offizieller Beitrag

    funktioniert leider immer noch nicht ;•(

    Was funktioniert denn nicht?
    Sowas ist doch keine Fehlerbeschreibung! Etwas genauer sollte man das doch gerade als Programmierer hinkriegen. :rolleyes:
    Welchen Dateinamen hat denn Dein Updater? Vielleicht "DreamRadio1.exe" oder schonmal daran gedacht, diesen Prozess vorher (vor dem updaten) zu beenden?
    Wenn der Prozess noch läuft, dann kann man die Exe-Datei nicht überschreiben (InetGet schlägt fehl). Wo ist die Fehlerbehandlung für diesen Fall?
    Einfach mal die Rückgabe von InetGet auswerten könnte nicht schaden. Dann kommt man dem Problem deutlich näher. ;)

  • Zitat

    Was funktioniert denn nicht?

    Sowas ist doch keine Fehlerbeschreibung! Etwas genauer sollte man das doch gerade als Programmierer hinkriegen. :rolleyes:

    Welchen Dateinamen hat denn Dein Updater? Vielleicht "DreamRadio1.exe"
    oder schonmal daran gedacht, diesen Prozess vorher (vor dem updaten) zu
    beenden?

    Wenn der Prozess noch läuft, dann kann man die Exe-Datei nicht
    überschreiben (InetGet schlägt fehl). Wo ist die Fehlerbehandlung für
    diesen Fall?

    Einfach mal die Rückgabe von InetGet auswerten könnte nicht schaden. Dann kommt man dem Problem deutlich näher. ;)

    mein Updater hat den Namen DreamRadio und DreamRadio1 ist das eig. Programm (das Radio) ... der updater soll das Radio herrunterladen und gegebenfalls ersetzen ... also updaten ... mein problem ist dass er das Radio nicht in den gewünschten Ordner packt -.- besser gesagt garnicht herrunterladet

    er zeigt mir den Inhalt der Ini in einer MsgBox und nach dieser MsgBox erscheint noch eine MsgBox die "Isch abe fertisch! ;D"
    sagt. Und natürlich befindet sich danach in meinem @ScriptDir mein Radio dass gerade herruntergeladen wurde -.- ... hab mal den Pfad2 geändert und nocheinmal getestet funktioniert wunderbar -.- liegt also am @ProgramFilesDir wenn jemand eine Idee hat wie ich das DreamRadio1.exe da trotzdem rein krieg^^ soll es hier rein posten ... ansonsten stell ich das hier mal auf gelöst


    Zitat

    Probiers mal damit:

    Geh in den Überordner, wo der Order mit deim Update erscheinen soll, mit
    Rechter Maustaste in die Eigenschaften --> Sicherheit und geb dir
    (dem Benutzer) die benötigten vollen Rechte.


    Alternativ dazu:

    Bei Sicherheit unten auf Erweitert --> Berichtigungen -->
    Berichtigungen ändern --> 1. Haken entfernen (auf Hinzufügen klicken
    wenn Popup erscheint) --> 2. Haken setzen und auf Übernehmen

    funktioniert leider auch nicht -.-

    2 Mal editiert, zuletzt von dreamer68 (27. Dezember 2012 um 16:59)

  • sry für die ganzen Umstände -.- ist jemand so lieb und kann mir sagen wo ich diesen Thread auf gelöst stelle ? =D