|
You last visited: Today at 00:03
Advertisement
Frage zu Updater
Discussion on Frage zu Updater within the AutoIt forum part of the Coders Den category.
12/18/2011, 21:02
|
#1
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Frage zu Updater
Hallo leute ich habe mal eine Frage...
Ich hab gesehen in google und so gibts viele Tutorials zum Updater.
Aber ich hab eine Ftp Webiste(Kilu.de Bplaced.net) und da geh ich mit Filezilla rauf und schiebe die Updater.txt rein.
Aber die Updater.txt Ladet sich ja nicht in temp runter oder?
Aber das ist ja nicht mal meine Frage...
Ich will einen Updater erstellen und ihn in meinem Programm einbauen...
Mein Problem ist ja wie schon gesagt wegen den FTP Websiten...
FileZilla Updater.txt ...
Also auf klar Text:
Ich will einen Updater machen für mein Programm.
In dem Programm soll der Updater sein auf einem Button...
Aber erstmal will ich nur wissen wie man einen Updater macht...
mit FTP
Bitte um Hilfe!
|
|
|
12/18/2011, 21:29
|
#2
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Ich würds so machen:
Code:
$version = _inetgetsource("Deinewebisite.de/Version.txt")
If $version > $aktuelleVersion then
_Update()
endif
Func _Update()
InetGet ( "Deinewebisite.de/Programm.exe", @scriptdir & "\Programm.exeN)
FileDelete(@scriptdir & "\Programm.exe")
FileMove(@scriptdir & "\Programm.exeN", @scriptdir & "\Programm.exe")
endfunc
In meinem Programm "  hab ich das so gelöst, dass das Hauptprogramm bei jedem start geschaut hat, ob der Updater existiert, wenn nicht, läd es ihn herunter. Außerdem hat das Hauptprogramm getestet ob die aktuellste Version installiert ist, wenn nicht, wird der Updater gestartet.
Hier ein auszug aus dem Code:
Code:
Func WSUpdate()
$Hcounter = InetRead("http://weaponsettings.1x.net/Counter/counter.php")
Run(@ScriptDir & "\WSUpdater.exe")
If @error <> 0 Then
$DLMesg = MsgBox(0, "Info", "Sie haben keinen Updater für dieses Programm" & @CRLF & "Soll der Updater jetzt geladen werden?")
If $DLMesg = 1 Then
WSUpdaterUpdate()
Run(@ScriptDir & "\WSUpdater.exe")
EndIf
EndIf
Exit
EndFunc ;==>WSUpdate
Code:
Func WSUpdaterUpdate()
$hDownload = InetGet("http://weaponsettings.1x.net/WeaponSettings/Client/WSUpdater.exe", @ScriptDir & "\WSUpdater.exeN", 1, 1)
If @error Then
_log("Error during download")
MsgBox(1, "Error", "Error: " & @error)
EndIf
Do
Sleep(250)
$nBytes = InetGetInfo($hDownload, 1)
Until InetGetInfo($hDownload, 2)
_log("Downloading: " & InetGetInfo($hDownload, 0))
_log($nBytes & "Bytes downloaded")
_log("Download complete")
FileDelete(@ScriptDir & "\WSUpdater.exe")
FileMove(@ScriptDir & "\WSUpdater.exeN", @ScriptDir & "\WSUpdater.exe")
IniWrite(@ScriptDir & "\WSFiles\UserInfo.ini", "UpdaterInfo", "Version", $UVersion)
If @error Then
_log("Error")
EndIf
_log("Download complete")
EndFunc ;==>WSUpdaterUpdate
Code:
unc VersCheck();Checkt die WS und WSUpdater Version
LMess()
$Version = ReadFromIni("WSInfo", "Version", 0)
$Uvers = ReadFromIni("UpdaterInfo", "Version", 0)
$UVersion = _INetGetSource("http://weaponsettings.1x.net/WeaponSettings/update/Uvers.txt")
If Not ($UVersion == $Uvers) Then
$MBox = MsgBox(4, "Info", "Sie haben nicht den aktuellsten 'WSUpdater'." & @CRLF & "Soll die Version. " & $UVersion & "geladen werden?")
If $MBox = 6 Then
WSUpdaterUpdate()
EndIf
EndIf
$aVersion = _INetGetSource("http://weaponsettings.1x.net/WeaponSettings/update/WSVersion.txt")
If $Version = $aVersion Then
Sleep(99)
Else
$ID = MsgBox(1, "Update", "Es steht ein Update für 'WeaponSettings' bereit!" & @CRLF & "Updaten?")
If $ID = 1 Then
WSUpdate()
EndIf
EndIf
EndFunc ;==>VersCheck
|
|
|
12/18/2011, 21:46
|
#3
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Könntest du mir sagen was ich alles in meine sachen umbennenen muss und wo ich den Uvers.txt herbekomme
$Edit: und AutoIt v3 Script (neu).au3(14,16) : ERROR: WSUpdate() already defined.
Func WSUpdate()
~~~~~~~~~~~~~~~^
AutoIt v3 Script (neu).au3(27,16) : ERROR: WSUpdate() already defined.
Func WSUpdate()
~~~~~~~~~~~~~~~^
AutoIt v3 Script (neu).au3(7,29) : ERROR: WSUpdaterUpdate(): undefined function.
WSUpdaterUpdate()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
AutoIt v3 Script (neu).au3 - 3 error(s), 0 warning(s)
|
|
|
12/18/2011, 21:52
|
#4
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Naja kopieren solltest du es nicht  In der Uvers.txt stand "1.1" oder so drinn, also die Version des Updaters.
In WSVersion.txt steht die Version des Hauptprogramms.
Wenn du eine neue Version hast, musst du sie nur auf den FTP Server legen, Uvers.txt und WSVersion.txt anpassen und schon updated das Programm beim Clienten.
|
|
|
12/18/2011, 21:58
|
#5
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Aber wie soll ich das machen bin anfänger von autoit xD
ich will auch nen auto updater wo dann anfrage kommt willst du das updaten beim Programm start  also ohne button oder so ...
Wusste nicht das es auto update gibt^^
Also wenn ich das programm starte soll frage kommen Update herunterladen? ja oder nein sowas wie If $Variable ElseIf Else... weist du  Ja und nein
|
|
|
12/18/2011, 22:08
|
#6
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
schaut ob alles aktuell ist, oder nicht
Code:
$Version = ReadFromIni("WSInfo", "Version", 0) ;liest aus einer Ini die aktuelle Version des Programms
$Uvers = ReadFromIni("UpdaterInfo", "Version", 0) ;liest aus einer Ini die aktuelle Version des Updaters
$UVersion = _INetGetSource("http://weaponsettings.1x.net/WeaponSettings/update/Uvers.txt") ;ließt die aktuellste online version
If Not ($UVersion == $Uvers) Then ; wenn sie nicht gleich sind dann
$MBox = MsgBox(4, "Info", "Sie haben nicht den aktuellsten 'WSUpdater'." & @CRLF & "Soll die Version. " & $UVersion & "geladen werden?") ; kommt diese Msgbox
If $MBox = 6 Then ; wenn die msg mit "ja" angeklickt wird dann
WSUpdaterUpdate() ; updater update
EndIf
EndIf
$aVersion = _INetGetSource("http://weaponsettings.1x.net/WeaponSettings/update/WSVersion.txt") ; aktuellste programm version online wird ausgelesen
If $Version = $aVersion Then ; wenn sie gleich sind, dann
Sleep(99) ; nix
Else ; ansonsten
$ID = MsgBox(1, "Update", "Es steht ein Update für 'WeaponSettings' bereit!" & @CRLF & "Updaten?") ; msg mit dieser frage
If $ID = 1 Then ; wenn sie mit ok beantwortet wird, dann
WSUpdate() ; update
EndIf
EndIf
EndFunc ;==>VersCheck
|
|
|
12/18/2011, 22:17
|
#7
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
die programmversion würde im programm bei autoit scripten hardcoded deutlich mehr sinn machen, und wäre auch leichter umsetzbar^^
Code:
$version = 1337
If BinaryToString(InetRead('Meine-Website.ruleZ/version.txt'))<>$version Then Update()
|
|
|
12/18/2011, 22:31
|
#8
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Ja, so hab ich das auch in einer aktuelleren Version drinn. Aber bin nicht an meinem Rechner und konnte nur auf ein hochgeladenes File zugreifen.
|
|
|
12/19/2011, 14:51
|
#9
|
elite*gold: 0
Join Date: Mar 2011
Posts: 8,645
Received Thanks: 3,454
|
Hier im Video erklärt er ganz genau wie du am besten einen Updater machst. Schaus dir am besten an. Er erklärt wirklich alles stück für stück.
|
|
|
12/19/2011, 16:02
|
#10
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
niemals updates über ftp machen!
lad die datei auf seite xyz hoch, vergleich die version wie ich oben gezeigt habe mit einer internen, und lad die datei dann mit InetGet('xyz/datei')...
|
|
|
12/19/2011, 16:18
|
#11
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Wieso nicht FTP? Wenn man es trotzdem über Inetget laden kann?
Bei Kilu hat man gleich ne Domain dazu, über die man dann den FTP Inhalt über den Browser laden kann.
|
|
|
12/19/2011, 16:30
|
#12
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
baust du in dein script ftp daten ein, und veröffentlichst es, kannst du davon ausgehen, das die daten binnen sekunden weltweit bekannt sind.
mögliche folgen wären zb: - updatefile wird durch virus ersetzt
- zugangsdaten werdn geändert
- ftp wird geleert
- ...
meiner meinung nach alles dinge, welche nicht wirklich schön/notwendig sind, zumal es per ftp commandos nicht leichter wird.
|
|
|
12/19/2011, 16:41
|
#13
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Wenn man aber ohne Daten auf die Files zugreifen kann? Und das ist bei Kilu der fall  Da kann man dann einfach über ne Domain (bsp. domain1.1x.biz) auf die Ordner zugreifen.
|
|
|
12/19/2011, 16:49
|
#14
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
hast du dir den beitrag von Snivel mal angeschaut?
wenn hier tatsächlich empfolen wird, über ftp befehele ein update zu machen, muss man die user ja darauf hinweisen, das dies die absolut schlechteste mögliche wahl wäre, das problem zu lösen.
das was du dort die ganze zeit beschreibst, ist doch genau der weg den ich erklärt habe.
die updater datei besteht eig nur aus zwei zeilen:
Code:
InetGet('Meine-Website.ruleZ/File.exe')
Run('File.exe')
und das file macht eben den versionscheck, und führt bei update das update aus.
Code:
$version = 1337
If BinaryToString(InetRead('Meine-Website.ruleZ/version.txt'))<>$version Then Update()
Func Update()
Run('Update.exe')
Exit
Endfunc
mehr als diese 7 zeilen braucht man nicht zum updaten...
einziges eventuell notweniges extra wären updates, welche nur mit bestimmten userdaten möglich sind.
aber auch dies erledigt man nicht über ftp befehle, sondern über ein auf dem server befindliches php script.
|
|
|
12/19/2011, 18:13
|
#15
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
Originally Posted by lolkop
hast du dir den beitrag von Snivel mal angeschaut?
wenn hier tatsächlich empfolen wird, über ftp befehele ein update zu machen, muss man die user ja darauf hinweisen, das dies die absolut schlechteste mögliche wahl wäre, das problem zu lösen.
das was du dort die ganze zeit beschreibst, ist doch genau der weg den ich erklärt habe.
die updater datei besteht eig nur aus zwei zeilen:
Code:
InetGet('Meine-Website.ruleZ/File.exe')
Run('File.exe')
und das file macht eben den versionscheck, und führt bei update das update aus.
Code:
$version = 1337
If BinaryToString(InetRead('Meine-Website.ruleZ/version.txt'))<>$version Then Update()
Func Update()
Run('Update.exe')
Exit
Endfunc
mehr als diese 7 zeilen braucht man nicht zum updaten...
einziges eventuell notweniges extra wären updates, welche nur mit bestimmten userdaten möglich sind.
aber auch dies erledigt man nicht über ftp befehle, sondern über ein auf dem server befindliches php script.
|
Achso, ja. Nur der User hat im ersten Post ja schon geschrieben, dass er es mit Kilu lösen will. Deshalb hab ich mir Snivels Post garnicht angeschaut 
Mein Past ist ja ziemlich das gleiche, nur für mehrere Programme und mit einer Msgbox, die nachfrägt, ob ein Update erwünscht ist.
|
|
|
 |
Similar Threads
|
Der eigene Updater *frage*
02/18/2011 - Shaiya Private Server - 1 Replies
Guten morgen alle zusammen,
ich habe mir für einige liebe User einen P-Server erstellt.
Ich möchte jetzt nun den Updater in angriff nehmen, dazu habe ich folgende fragen.
Wie bearbeite ich den?
Wie ziehe ich mit dem denn Updates :D
Man kennt es ja von De oder anderen P-servern wenn die was gemacht haben .. das der Updater dann ein kurzes Update zieht und alles ist drauf. kann ja nicht jedes mal nen neuen Client zum download bereit stellen.
|
[FRAGE]VB auslesen einer Patchlist für Updater
02/14/2011 - .NET Languages - 3 Replies
Ich bin gerade dabei einen Patcher zu machen und ich möchte nun folgendes:
Ich habs schon mit webclient versucht und klappt alles auch wunderbar doch er soll ja mehrere datein downloaden. Deswegen hab ich was anderes gemacht:
ProgressBar1.Value = "2"
TextBox1.Text = "DATEINAME wird geprüft."
If My.Computer.FileSystem.FileExists("DATEINAME& quot;) Then
My.Computer.FileSystem.DeleteFile("DATEINAME& quot;)
TextBox1.Text = "DATEINAME wurde gelöscht."
...
|
[Frage] Updater Modden?!
11/24/2010 - WarRock - 6 Replies
Hi E*pvp,
ich würde gerne wissen wie man den Updater moddet...
Danke schonmal,
SB
|
[FRAGE]Updater in Batch
11/19/2010 - General Coding - 3 Replies
Wäre es möglich Datein auf einem FTP-Server per Batch herunterladen zu lassen? Wenn ja wie?
Danke
|
Hab ne Frage zum UPDATER SUCHE HILFE
06/19/2010 - WarRock - 12 Replies
Also Gestern hat der updater garnix angezeigt noch losttemple
und wenn ich auf gedrückt habe ist nichts passiert
heute war dann ddas bild von WM daa :D aber rechts steht:
05.05.2010 Pay Safe Card Website Issues
20.04.2010 War Rock Clan Warfare Closed Beta 1
16.04.2010 Lost Temple Videowettbewerb!
|
All times are GMT +1. The time now is 00:03.
|
|