Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 23:48

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Problem mit _Update UDF

Discussion on Problem mit _Update UDF within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
puzzlr's Avatar
 
elite*gold: 29
Join Date: Nov 2010
Posts: 502
Received Thanks: 127
Problem mit _Update UDF

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.

PHP Code:
#include-once
#INDEX# =======================================================================================================================
Title .........: _SelfUpdater
AutoIt Version3.0.0++
Language:       eutsch
Description:    Function die das eigene Script mit einer Datei aus dem Internet aktualisiert
; ===============================================================================================================================
; ------------------------------------------------------------------------------
;
AutoIt Version3.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:/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:        = (Es wurde keine Datei zum Downloaden angegeben oder der Pfad enthält kein "/")
;                                        = 
(Download Datei hat 0 Byte Größe)
;                                        = 
(aktDatei entsprUpdate-Datei -- Test erfolgt nur anhand der Größe!!!)
;                                        = 
(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 /" & '"' & "%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 
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
puzzlr is offline  
Old 01/05/2011, 07:24   #2



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
vllt weil nirgendwo sowas wie eine Versions Nummer ist :P
er kriegt immer nur den befehl das ein Update verfügbar ist

Code:
$Version = "1.0"
Inetget(".ini vom webspace mit aktueller version",@TempDir &"\Ininame.ini")
If Iniread(@TempDir &"\Ininame.ini","Version","Version","Error") > $Version then _SelfUpdater(......)
FichtenFoll hat mir mal eine Nette Update funktion gemacht :P

Code:
_Update()

Func _Update()
	$szIni = @TempDir & "\version.ini"
	Local $szIni = "version.ini", $szVersion = "1.0"
	Local $szVerLast, $szVerMin, $szVerLast_Info, $szVerLast_Download, $szDownloadPath

	InetGet("http://trainer99.tr.ohost.de/version.ini", $szIni, 1)
	$szVerLast = IniRead($szIni, "Version", "VersionLast", -1)
	$szVerMin = IniRead($szIni, "Version", "VersionMin", -1)

	$szVerLast_Info = IniRead($szIni, "Info", $szVerLast, "No Information available.")
	$szVerLast_Download = IniRead($szIni, "Download", $szVerLast, "")
	$szDownloadPath = @ScriptDir & "\DarkGER's und freehuntx's Trainer v" & $szVerLast & ".exe"
	FileDelete($szIni)

	If $szVerLast = -1 Or $szVerMin = -1 Then Return MsgBox(48, "Warning", "Checking for downloads failed.", 10)

	Select
		Case __VersionCompare($szVersion, $szVerMin) = -1 ; VerMin higher than current version
			Switch MsgBox(4 + 48, "New Version - Update necessary", "Your current version does not work properly, you need to download a newer version." & @CRLF & _
					"Would you like to download the newest version (" & $szVerLast & ")?" & @CRLF & _
					"The file will be saved in the same directory." & @CRLF & @CRLF & _
					'' & _
					"Versioninfo:" & @CRLF & _
					$szVerLast_Info)
				Case 6
					__Download($szVerLast_Download, $szDownloadPath, $szVerLast)
					If @error Then
						MsgBox(16, "Error", "Download failed.")
					Else
						Run($szDownloadPath)
					EndIf

					Exit 0

				Case Else
					MsgBox(48, "Warning", "You have to download a newer version to use this trainer." & @CRLF & "The program will close now.", 10)
					Exit 0
			EndSwitch

		Case __VersionCompare($szVersion, $szVerLast) = -1 ; VerLast higher than current version
			Switch MsgBox(4 + 64, "New Version - Update recommended", "A new version (" & $szVerLast & ") is available, it's recommended to download it." & @CRLF & _
					"Would you like to download it?" & @CRLF & _
					"The file will be saved in the same directory." & @CRLF & @CRLF & _
					'' & _
					"Versioninfo:" & @CRLF & _
					$szVerLast_Info _
					, 10)
				Case 6
					__Download($szVerLast_Download, $szDownloadPath, $szVerLast)
					If @error Then
						MsgBox(16, "Error", "Download failed.")
					Else
						Run($szDownloadPath)
						Exit
					EndIf

				Case Else
					Return 0 ; Not updated
			EndSwitch
		Case Else
			Return 1 ; Newest version
	EndSelect

EndFunc   ;==>_Update

Func __Download($szSource, $szDest, $szVersion = '')
	Local $iSize = InetGetSize($szSource)
	If Not $iSize Then Return SetError(1)

	Local $hDownload = InetGet($szSource, $szDest, 1, 1), $dPercent = 0, $iRead
	ProgressOn("Updating...", "Updating Trainer to version " & $szVersion, "0% | 0 / " & __NumFormat($iSize) & " Bytes")
	Do
		$iRead = InetGetInfo($hDownload, 0)
		$dPercent = $iRead / $iSize * 100
		ProgressSet(Floor($dPercent), Round($dPercent, 1) & "% | " & __NumFormat($iRead) & " / " & __NumFormat($iSize) & " Bytes")

		Sleep(100)
	Until InetGetInfo($hDownload, 2) = True Or InetGetInfo($hDownload, 4)

	If InetGetInfo($hDownload, 4) Then
		ProgressOff()
		Return SetError(2)
	EndIf

	ProgressSet(100, "100% | Download finished")
	Sleep(1000)

	Return 1
EndFunc   ;==>__Download

; =============================

Func __NumFormat($sNumber, $cSeperator = ".", $iCount = 3)
	Local $iDigits = StringLen($sNumber), $sNumFormat

	For $i = Floor(($iDigits - 1) / $iCount) To 0 Step -1
		$sNumFormat = StringRight($sNumber, $iCount) & $sNumFormat
		$sNumber = StringTrimRight($sNumber, $iCount)

		If $i > 0 Then $sNumFormat = $cSeperator & $sNumFormat
	Next

	$sNumFormat = $sNumber & $sNumFormat

	Return $sNumFormat
EndFunc   ;==>__NumFormat

Func __VersionCompare($sVersion1, $sVersion2)
	If $sVersion1 = $sVersion2 Then Return 0
	Local $sep = "."
	If StringInStr($sVersion1, $sep) = 0 Then $sep = ","
	Local $aVersion1 = StringSplit($sVersion1, $sep)
	Local $aVersion2 = StringSplit($sVersion2, $sep)
	If UBound($aVersion1) <> UBound($aVersion2) Or UBound($aVersion1) = 0 Then
		; Compare as strings
		SetExtended(1)
		If $sVersion1 > $sVersion2 Then
			Return 1
		ElseIf $sVersion1 < $sVersion2 Then
			Return -1
		EndIf
	Else
		For $i = 1 To UBound($aVersion1) - 1
			; Compare this segment as numbers
			If StringIsDigit($aVersion1[$i]) And StringIsDigit($aVersion2[$i]) Then
				If Number($aVersion1[$i]) > Number($aVersion2[$i]) Then
					Return 1
				ElseIf Number($aVersion1[$i]) < Number($aVersion2[$i]) Then
					Return -1
				EndIf
			Else ; Compare the segment as strings
				SetExtended(1)
				If $aVersion1[$i] > $aVersion2[$i] Then
					Return 1
				ElseIf $aVersion1[$i] < $aVersion2[$i] Then
					Return -1
				EndIf
			EndIf
		Next
	EndIf
	; This point should never be reached
	Return SetError(2, 0, 0)
EndFunc   ;==>__VersionCompar
Host / Dateiname müsstest du ändern :P

Code:
[Version]
VersionLast= Neueste Version.
VersionMin= Version die man mindestens haben muss.

[Info]
1.3= Ich bin eine Info die in der Msgbox auftaucht :P

[Download]
1.3=Dein Download link
(meine Version war halt 1.3 :P muss im Download/Info dann angepasst werden)
Asuramaru is offline  
Old 01/05/2011, 13:03   #3
 
puzzlr's Avatar
 
elite*gold: 29
Join Date: Nov 2010
Posts: 502
Received Thanks: 127
Quote:
Originally Posted by -SilentHill* View Post
vllt weil nirgendwo sowas wie eine Versions Nummer ist :P
er kriegt immer nur den befehl das ein Update verfügbar ist

Code:
$Version = "1.0"
Inetget(".ini vom webspace mit aktueller version",@TempDir &"\Ininame.ini")
If Iniread(@TempDir &"\Ininame.ini","Version","Version","Error") > $Version then _SelfUpdater(......)
FichtenFoll hat mir mal eine Nette Update funktion gemacht :P

Code:
_Update()

Func _Update()
	$szIni = @TempDir & "\version.ini"
	Local $szIni = "version.ini", $szVersion = "1.0"
	Local $szVerLast, $szVerMin, $szVerLast_Info, $szVerLast_Download, $szDownloadPath

	InetGet("http://trainer99.tr.ohost.de/version.ini", $szIni, 1)
	$szVerLast = IniRead($szIni, "Version", "VersionLast", -1)
	$szVerMin = IniRead($szIni, "Version", "VersionMin", -1)

	$szVerLast_Info = IniRead($szIni, "Info", $szVerLast, "No Information available.")
	$szVerLast_Download = IniRead($szIni, "Download", $szVerLast, "")
	$szDownloadPath = @ScriptDir & "\DarkGER's und freehuntx's Trainer v" & $szVerLast & ".exe"
	FileDelete($szIni)

	If $szVerLast = -1 Or $szVerMin = -1 Then Return MsgBox(48, "Warning", "Checking for downloads failed.", 10)

	Select
		Case __VersionCompare($szVersion, $szVerMin) = -1 ; VerMin higher than current version
			Switch MsgBox(4 + 48, "New Version - Update necessary", "Your current version does not work properly, you need to download a newer version." & @CRLF & _
					"Would you like to download the newest version (" & $szVerLast & ")?" & @CRLF & _
					"The file will be saved in the same directory." & @CRLF & @CRLF & _
					'' & _
					"Versioninfo:" & @CRLF & _
					$szVerLast_Info)
				Case 6
					__Download($szVerLast_Download, $szDownloadPath, $szVerLast)
					If @error Then
						MsgBox(16, "Error", "Download failed.")
					Else
						Run($szDownloadPath)
					EndIf

					Exit 0

				Case Else
					MsgBox(48, "Warning", "You have to download a newer version to use this trainer." & @CRLF & "The program will close now.", 10)
					Exit 0
			EndSwitch

		Case __VersionCompare($szVersion, $szVerLast) = -1 ; VerLast higher than current version
			Switch MsgBox(4 + 64, "New Version - Update recommended", "A new version (" & $szVerLast & ") is available, it's recommended to download it." & @CRLF & _
					"Would you like to download it?" & @CRLF & _
					"The file will be saved in the same directory." & @CRLF & @CRLF & _
					'' & _
					"Versioninfo:" & @CRLF & _
					$szVerLast_Info _
					, 10)
				Case 6
					__Download($szVerLast_Download, $szDownloadPath, $szVerLast)
					If @error Then
						MsgBox(16, "Error", "Download failed.")
					Else
						Run($szDownloadPath)
						Exit
					EndIf

				Case Else
					Return 0 ; Not updated
			EndSwitch
		Case Else
			Return 1 ; Newest version
	EndSelect

EndFunc   ;==>_Update

Func __Download($szSource, $szDest, $szVersion = '')
	Local $iSize = InetGetSize($szSource)
	If Not $iSize Then Return SetError(1)

	Local $hDownload = InetGet($szSource, $szDest, 1, 1), $dPercent = 0, $iRead
	ProgressOn("Updating...", "Updating Trainer to version " & $szVersion, "0% | 0 / " & __NumFormat($iSize) & " Bytes")
	Do
		$iRead = InetGetInfo($hDownload, 0)
		$dPercent = $iRead / $iSize * 100
		ProgressSet(Floor($dPercent), Round($dPercent, 1) & "% | " & __NumFormat($iRead) & " / " & __NumFormat($iSize) & " Bytes")

		Sleep(100)
	Until InetGetInfo($hDownload, 2) = True Or InetGetInfo($hDownload, 4)

	If InetGetInfo($hDownload, 4) Then
		ProgressOff()
		Return SetError(2)
	EndIf

	ProgressSet(100, "100% | Download finished")
	Sleep(1000)

	Return 1
EndFunc   ;==>__Download

; =============================

Func __NumFormat($sNumber, $cSeperator = ".", $iCount = 3)
	Local $iDigits = StringLen($sNumber), $sNumFormat

	For $i = Floor(($iDigits - 1) / $iCount) To 0 Step -1
		$sNumFormat = StringRight($sNumber, $iCount) & $sNumFormat
		$sNumber = StringTrimRight($sNumber, $iCount)

		If $i > 0 Then $sNumFormat = $cSeperator & $sNumFormat
	Next

	$sNumFormat = $sNumber & $sNumFormat

	Return $sNumFormat
EndFunc   ;==>__NumFormat

Func __VersionCompare($sVersion1, $sVersion2)
	If $sVersion1 = $sVersion2 Then Return 0
	Local $sep = "."
	If StringInStr($sVersion1, $sep) = 0 Then $sep = ","
	Local $aVersion1 = StringSplit($sVersion1, $sep)
	Local $aVersion2 = StringSplit($sVersion2, $sep)
	If UBound($aVersion1) <> UBound($aVersion2) Or UBound($aVersion1) = 0 Then
		; Compare as strings
		SetExtended(1)
		If $sVersion1 > $sVersion2 Then
			Return 1
		ElseIf $sVersion1 < $sVersion2 Then
			Return -1
		EndIf
	Else
		For $i = 1 To UBound($aVersion1) - 1
			; Compare this segment as numbers
			If StringIsDigit($aVersion1[$i]) And StringIsDigit($aVersion2[$i]) Then
				If Number($aVersion1[$i]) > Number($aVersion2[$i]) Then
					Return 1
				ElseIf Number($aVersion1[$i]) < Number($aVersion2[$i]) Then
					Return -1
				EndIf
			Else ; Compare the segment as strings
				SetExtended(1)
				If $aVersion1[$i] > $aVersion2[$i] Then
					Return 1
				ElseIf $aVersion1[$i] < $aVersion2[$i] Then
					Return -1
				EndIf
			EndIf
		Next
	EndIf
	; This point should never be reached
	Return SetError(2, 0, 0)
EndFunc   ;==>__VersionCompar
Host / Dateiname müsstest du ändern :P

Code:
[Version]
VersionLast= Neueste Version.
VersionMin= Version die man mindestens haben muss.

[Info]
1.3= Ich bin eine Info die in der Msgbox auftaucht :P

[Download]
1.3=Dein Download link
(meine Version war halt 1.3 :P muss im Download/Info dann angepasst werden)
Werde ich heute abend mal ausprobieren, aber ich würde gerne noch die oben gepostete UDF zum Laufen bringen. So wie ich das verstanden habe, vergleicht der Updater oben die Größen der beiden Scripts. Und ich habe mal in meinem Temporal Verzeichnis nachgeguckt (da downloadet er es ja hin, erstellt dann ne batch datei um das Update in das Scriptverzeichnis zu kopieren und das alte mit dem neuen zu überschreiben) und tatsächlich die Datei ist da.

Also denke ich, dass da was mit der batch datei falsch ist.

von batch dateien hab ich leider keine ahnung. ._.
puzzlr is offline  
Old 01/05/2011, 13:12   #4



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
wenn eingestellt ist das es ein Update gibt
aber nichts wie die Version oderso geprüft wird dann kann ja nur dauerhaft diese meldung kommen :P
Asuramaru is offline  
Old 01/05/2011, 14:05   #5
 
puzzlr's Avatar
 
elite*gold: 29
Join Date: Nov 2010
Posts: 502
Received Thanks: 127
Quote:
Originally Posted by -SilentHill* View Post
wenn eingestellt ist das es ein Update gibt
aber nichts wie die Version oderso geprüft wird dann kann ja nur dauerhaft diese meldung kommen :P
dieses script vergleicht die größen . wenn die größen gleich sind, gibt es kein update . und die datei wird ja bis ins temporal verzeichnis geladen. doch dann wird sie nicht, wie gewollt ins scriptverzeichnis kopiert. dh. irgendwas ist mit diesem abschnitt falsch ;=>

PHP Code:
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%_updFarmer by u_failed.exe" $upd_file '" "' & @ScriptDir "" $upd_file '"' & @CRLF '"' $upd_srcfile '"' & @CRLF "del " '"' "%temp%_updupd_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 
puzzlr is offline  
Old 01/05/2011, 14:17   #6



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
vllt wird die Datei nicht überschrieben?
also das die Batch datei die vorherige datei nicht löschen / überschreiben tut? :P
(sry hab von Batch ebenfalls keine Ahnung^^)
Asuramaru is offline  
Old 01/05/2011, 14:21   #7
 
puzzlr's Avatar
 
elite*gold: 29
Join Date: Nov 2010
Posts: 502
Received Thanks: 127
Quote:
Originally Posted by -SilentHill* View Post
vllt wird die Datei nicht überschrieben?
also das die Batch datei die vorherige datei nicht löschen / überschreiben tut? :P
(sry hab von Batch ebenfalls keine Ahnung^^)

genau. sie verschiebt die datei garnicht sondern lässt sie im temporal verzeichnis. und deswegen will er immer wieder updaten, weil das alte garnicht durch das neue ersetzt wurde..
puzzlr is offline  
Old 01/05/2011, 14:38   #8
 
-AmA-'s Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 728
Received Thanks: 460
Ich bin immer noch für die einfachste Methode, die die Gamehoster verwenden...
1. Updater starten
2. Updater überprüft die Files ob die neuste Version vorhanden ist
2a. Wenn nicht wird sie heruntergeladen
3. Programm starten

Macht um einiges weniger Code die Skripte von euch...
Faulheit vor
-AmA- is offline  
Reply


Similar Threads Similar Threads
[Problem] Problem with server starting - cannot find quest index for PaxHeader
12/22/2009 - Metin2 Private Server - 1 Replies
Hello! I have this same problem as here when i'm starting my server: http://www.elitepvpers.com/forum/metin2-pserver-di scussions-questions/307143-metin2-serverfiles-ques t-index-fehler.html But I didn't know the answer.. how to repair this? Greetings



All times are GMT +1. The time now is 23:49.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.