Guten Morgen! :)
nach ein bisschen googeln habe ich eine Update UDF gefunden. schaut auch ganz ordentlich aus.
funktionsweise:
vergleicht programm das von euch hochgeladen wurde mit dem was zurzeit bei euch läuft. unterscheiden sich die größen, downloadet er das neue ins Temp Verzeichnis. dann erstellt das script eine batch datei, die die neue datei ins script verzeichnis verschiebt und da mit dem alten ersetzt.
Mein Problem jetzt ist, wenn ich das alle soweit eingefügt habe und ausgefüllt habe, sagt er mir beim Starten, dass ein Update verfügbar ist. Dann downloade ich's, das Script wird beendet (hab ich so ausgewählt) und neugestartet, dann kommt eine MsgBox die mir sagt, dass das Update erfolgreich war. doch dann direkt danach sagt er mir wieder dass ein update verfügbar ist, und dann wird mir wieder angeboten das zu downloaden-
zusammengefasst, bietet er dir ein update an, du downloadest das aber nichts geschiet. dann sagt er dir noch dass es erfolgreich war, das war es aber nich.
Ich bin mir ziemlich sicher, dass das Problem in der Udf sitzt. da diese frage schonmal in dem forum gepostet wurde, aus dem es kommt und da nicht beantwortet wurde, versuch ich es hier mal.
Lg - u_failed
nach ein bisschen googeln habe ich eine Update UDF gefunden. schaut auch ganz ordentlich aus.
funktionsweise:
vergleicht programm das von euch hochgeladen wurde mit dem was zurzeit bei euch läuft. unterscheiden sich die größen, downloadet er das neue ins Temp Verzeichnis. dann erstellt das script eine batch datei, die die neue datei ins script verzeichnis verschiebt und da mit dem alten ersetzt.
PHP Code:
#include-once
; #INDEX# =======================================================================================================================
; Title .........: _SelfUpdater
; AutoIt Version: 3.0.0++
; Language: eutsch
; Description: Function die das eigene Script mit einer Datei aus dem Internet aktualisiert
; ===============================================================================================================================
; ------------------------------------------------------------------------------
;
; AutoIt Version: 3.0
; Language: Deutsch
; Description: Funktion die das eigene Script mit einer Datei aus dem Internet aktualisiert
;
; ------------------------------------------------------------------------------
; #FUNCTION# ====================================================================================================================
; Name...........: _SelfUpdater
; Description ...: Function die das eigene Script mit einer Datei aus dem Internet aktualisiert
; Syntax.........: _SelfUpdater($upd_dlfile, $upd_autostart, $upd_title)
; Parameters ....: $upd_dlfile - Pfad zur aktuellen Datei, die gedownloadet werden soll
; z.B. "http://12345.de/datei.txt" ohne Angabe eines Users/Passwortes
; oder "http://Username:[Only registered and activated users can see links. Click Here To Register...]/datei.txt" mit Angabe eines Users/Passwortes
; $upd_autostart - 0/1 als Schalter für automatischen Restart der Anwendung nach Update
; $upd_title - Name der Anwendung / Titel der Download Progressbar i.d.R sollte dies der Name der Anwendung sein
; Return values .: Erfolg: = 1
; Fehler: @error = 1
; Rückgabewert: = 0 (Es wurde keine Datei zum Downloaden angegeben oder der Pfad enthält kein "/")
; = 2 (Download Datei hat 0 Byte Größe)
; = 3 (akt. Datei entspr. Update-Datei -- Test erfolgt nur anhand der Größe!!!)
; = 4 (Abbruch des Update's durch User)
; = 5 (Download-Datei hat nicht den selben Namen wie das ausgeführte Programm selbst. Daher kann das Update sich nicht selbst überschreiben)
; Author ........: Schnuffel @ www.autoit.de
; Modified.......:
; Remarks .......: Funktion am Anfang des Scriptes ausführen, damit das Script aktualisiert wird bevor es weiter ausgeführt wird
; Remarks .......: Um Passwort geschützte Bereiche zu erreichen verwende die Syntax: http://username:password@url oder ftp://username:password@url
; Related .......: NA
; Link ..........;
; Example .......; MsgBox(0, 'Ergebnis des Updates:', _SelfUpdater("Pfad zur Downloaddatei", 0, "Titel des Upload Fensters"))
; ===============================================================================================================================
Func _SelfUpdater($upd_dlfile = "", $upd_autostart = 0, $upd_title = "", $upd_srcfile = @ScriptFullPath)
$upd_mb_title = "Softwareupdate vorhanden für: " & $upd_title
$upd_mb_text1 = "Für das Programm " & $upd_title & " ist ein Update verfügbar." & @CRLF & @CRLF
$upd_mb_text2 = "Möchten Sie das Update jetzt herunterladen und installieren?"
$upd_mb_text3 = "Das Update wird geladen"
$upd_mb_text4 = "Das Update wird installiert"
$upd_mb_text5 = "Bitte warten Sie..."
$upd_mb_dl1 = "Das Softwareupdate wurde erfolgreich durchgeführt."
$upd_mb_dl2 = "Das Softwareupdate wurde nicht erfolgreich durchgeführt."
$upd_mb_dl3 = "Das Softwareupdate wurde abgebrochen, da die Datei nicht der heruntergeladenen entspricht." & @CRLF & @CRLF & "Bitte starten Sie die Anwendung erneut für einen Updateversuch,"
Local $upd_namesplit, $upd_file, $upd_mb_title, $upd_mb_text1, $upd_mb_text2, $upd_dlsize, $upd_actsize, $upd_split, $upd_mb, $upd_ini, $upd_iniold, $upd_get, $upd_sb, $upd_temp, $upd_mb_dl1, $upd_mb_dl2, $upd_mb_dl3, $upd_temp = @TempDir & "\_upd\"
If $upd_dlfile = "" Then Return SetError(1,0,0)
If Not StringInStr($upd_dlfile,"/") Then Return SetError(1,0,0)
$upd_namesplit = StringSplit($upd_dlfile, "/")
$upd_file = $upd_namesplit[$upd_namesplit[0]]
If $upd_title = "" Then
$upd_split = StringSplit(@ScriptName, ".")
$upd_title = $upd_split[0]
EndIf
If Not $upd_file = @ScriptName Then Return SetError(1,5,0)
If FileExists($upd_temp & "upd_version.ini") Then
$upd_iniold = IniRead($upd_temp & "upd_version.ini", "Update", "version", "0")
If $upd_iniold = $upd_dlsize Then
FileDelete($upd_temp & "upd_version.ini")
DirRemove($upd_temp)
MsgBox(262160, $upd_title, $upd_mb_dl2)
Else
FileDelete($upd_temp & "upd_version.ini")
DirRemove($upd_temp)
MsgBox(262208, $upd_title, $upd_mb_dl1)
EndIf
EndIf
$upd_dlsize = InetGetSize($upd_dlfile)
If $upd_dlsize = "0" Then Return SetError(1,0,2)
$upd_actsize = FileGetSize($upd_srcfile)
If $upd_dlsize = $upd_actsize Then Return SetError(1,0,3)
$upd_mb = MsgBox(262180, $upd_mb_title, $upd_mb_text1 & $upd_mb_text2)
If $upd_mb = 6 Then
DirCreate($upd_temp)
ProgressOn("Update " & $upd_title, $upd_mb_text3, $upd_mb_text5)
Sleep(500)
$upd_ini = IniWrite($upd_temp & "upd_version.ini", "Update", "version", $upd_actsize)
$upd_get = InetGet($upd_dlfile, $upd_temp & $upd_file, 1, 1)
Do
ProgressSet(Round(InetGetInfo($upd_get, 0) / ($upd_dlsize / 100), 0), Floor(InetGetInfo($upd_get, 0) / 1024) & "kB von " & Floor($upd_dlsize / 1024) & "kB bereits geladen" & @CRLF & "Bitte warten Sie...")
Sleep(50)
Until InetGetInfo($upd_get, 2)
ProgressSet(Round(InetGetInfo($upd_get, 0) / ($upd_dlsize / 100), 0), Floor($upd_dlsize / 1024) & "kB von " & Floor($upd_dlsize / 1024) & "kB bereits geladen" & @CRLF & "Bitte warten Sie...")
Sleep(1000)
If FileGetSize($upd_temp & $upd_file) <> $upd_dlsize Then
ProgressOff()
MsgBox(262160, $upd_title, $upd_mb_dl3)
DirRemove($upd_temp)
Return
EndIf
Local $upd_sb = FileOpen($upd_temp & "upd_start.bat", 2)
ProgressSet(100, $upd_mb_text5, $upd_mb_text4)
If $upd_autostart = 1 Then
FileWrite($upd_sb, "ping localhost -n 3" & @CRLF & "move /Y " & '"' & "%temp%\_upd\Farmer by u_failed.exe" & $upd_file & '" "' & @ScriptDir & "\" & $upd_file & '"' & @CRLF & '"' & $upd_srcfile & '"' & @CRLF & "del " & '"' & "%temp%\_upd\upd_start.bat")
Else
FileWrite($upd_sb, "ping localhost -n 3" & @CRLF & "move /Y " & '"' & "%temp%\_upd\" & $upd_file & '" "' & @ScriptDir & "\" & $upd_file & '"' & @CRLF & "del " & '"' & "%temp%\_upd\upd_start.bat")
EndIf
Sleep(2000)
FileClose($upd_sb)
ProgressOff()
Run($upd_temp & "upd_start.bat", $upd_temp, @SW_HIDE)
Exit
EndIf
If $upd_mb = 7 Then
Return SetError(1,0,4)
EndIf
EndFunc ;==>_SelfUpdater
zusammengefasst, bietet er dir ein update an, du downloadest das aber nichts geschiet. dann sagt er dir noch dass es erfolgreich war, das war es aber nich.
Ich bin mir ziemlich sicher, dass das Problem in der Udf sitzt. da diese frage schonmal in dem forum gepostet wurde, aus dem es kommt und da nicht beantwortet wurde, versuch ich es hier mal.
Lg - u_failed