Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 10:30

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

Advertisement



[TUT] Einfachen Updater erstellen!

Discussion on [TUT] Einfachen Updater erstellen! within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2013
Posts: 139
Received Thanks: 25
[TUT] Einfachen Updater erstellen!

Hey,
das ist mein erstes TUT, also seid nicht so streng mit mir!

1. Voraussetzungen
- Webspace
- Zip.au3

2. GUI
So nun brauchen wir eine Gui für die Abfrage, ob geupdated werden soll, und eine Gui, um den Changelog anzuzeigen.
Hier mal meine:



3. Dateien erstellen
Als erstes müsst ihr eine Datei erstellen, die die Versionnummer enthält. Bei mir: version.txt
Beispiel:
HTML Code:
2.5
Danach noch eine HTML Datei, die den Changelog enthält. Bei mir: log.html
Beispiel:
HTML Code:
<p>added: GUI</p>
<p>*Bug fixes</p>
4. AutoIt
Als erstes müssen wir die Versionsnummer auslesen und den Source der HTML Datei verarbeiten. Dafür ersetzen wir <p> und </p>!
Code:
$version = _INetGetSource("http://tim-lange.org/tut/version.txt") ;Version
$read = _INetGetSource("http://tim-lange.org/tut/log.html") ;Source einlesen
$umbruch = StringReplace($read, "</p>", @CRLF) ;</p> durch Zeilenumbruch ersetzen
$logedit = StringReplace($umbruch, "<p>", "") ;<p> rauslöschen
Nun will der User natürlich auch wissen, auf welche Version geupdated werden soll.
Code:
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Updater", 250, 71, -1, -1)
$updatelabel = GUICtrlCreateLabel("Update to " & $version & "?", 64, 8, 124, 28) ;Nur diese Zeile ist wichtig!
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$y = GUICtrlCreateButton("Yes", 8, 40, 75, 25)
$n = GUICtrlCreateButton("No", 88, 40, 75, 25)
$log = GUICtrlCreateButton("Changelog", 168, 40, 75, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
Wenn das geschafft ist setzen wir dem Editfeld Eigentschaften, dass man Scrollen kann, aber den Inhalt nicht editieren kann.
Code:
#region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Changelog", 261, 174, -1, -1)
$Edit1 = GUICtrlCreateEdit($logedit, 8, 8, 241, 129, $ES_READONLY + $WS_VSCROLL + $WS_HSCROLL) ;Nur die Zeile ist wichtig!
$close = GUICtrlCreateButton("Close", 8, 144, 243, 25)
#endregion ### END Koda GUI section ###
Zum Schluss müssen wir noch unseren Buttons eine Funktion geben.
Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $log ;Wenn unser Changelog Button gedrückt wird, soll die 2. GUI mit dem Changelog angezeigt werden. Dafür setzen wir die Form2 auf SHOW!
			GUISetState(@SW_SHOW, $Form2)
		Case $close;Wenn die GUI wieder geschlossen werden soll, ohne das sich das Programm schließt, müssen wird die Form2 einfach wieder auf HIDE setzen!
			GUISetState(@SW_HIDE, $Form2)
		Case $n ;Wenn der User nicht updaten will kann er auf nein drücken und das Programm schließt sich einfach. Ist aber kein Muss!
			Exit
		Case $y ;Wenn er nun das Update bestätigt, wird per InetGet die neuste Version heruntergeladen, Unzipped und gesagt, dass alles Erfolgreich war.
			InetGet("http://tim-lange.org/tut/prefix-" & $version & ".zip", "C:\update.zip") ;Prefix kann nach belieben geändert werden!
			_Zip_UnzipAll("C:\update.zip", @ScriptDir, 1)
			MsgBox(64, "Updater", "Succesfuly updated to " & $version & "!")
			Exit
	EndSwitch
WEnd
Das wars dein eigentlich schon Der Updater ist fertig! Ich hoffe es ist gut verständlich.
Attached Files
File Type: zip au3.zip (3.3 KB, 13 views)
Tiimä is offline  
Old 07/11/2013, 18:09   #2
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
lad bitte die zip.au3 hoch
YatoDev is offline  
Old 07/11/2013, 18:14   #3
 
elite*gold: 0
Join Date: Jul 2013
Posts: 139
Received Thanks: 25
Quote:
Originally Posted by »FlutterShy™ View Post
lad bitte die zip.au3 hoch
Habs gemacht
Tiimä is offline  
Old 07/11/2013, 18:34   #4
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
bist du dir sicher das du das richtige hochgeladen hast ?
YatoDev is offline  
Old 07/11/2013, 18:42   #5
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
Quote:
Originally Posted by Tiimä View Post
1. Voraussetzungen
- Webspace
- INet.au3
- Zip.au3
- GUI Includes
- Koda
[/code]

1. Voraussetzungen
- Webspace
- INet.au3
- Zip.au3
- GUI Includes
- Koda


MfG
Achat is offline  
Old 07/11/2013, 19:46   #6



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
Anstadt ein extra Include zu nutzen könntest du auch einfach InetRead benutzen und das Ergebniss mit BinaryToString in einen String umwandeln.

Code:
$version = BinaryToString(InetRead("http://tim-lange.org/tut/version.txt",2))
Wenn du <p></p> sowieso löscht, wieso benutzt du dieses dann eigentlich?
Man könnte diese einfach weglassen und somit das StringReplace() sparen.

Du solltest darauf achten auf mögliche Fehler einzugehen und den Rückgabewert der Funktionen überprüfen.
Denn du weißt nicht ob der Download und somit das updaten erfolgreich war.

Je nach geschmack könnte man die zip.au3 auch raushauen und die Files einzelnt runterladen, wenn man allerdings lieber mit einem Zip-Packet arbeitet ist das auch okay.


mfg.
Asuramaru is offline  
Old 07/11/2013, 19:55   #7


 
K1ramoX's Avatar
 
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,847
paar ideen:
  • würde lieber JSON code nehmen statt xml
  • error abfragen implementieren, dein script macht einfach weiter. kann ja sein dass dein webspace mal down ist und dass wäre fürs script nicht so gut
  • es ist definitiv sauberer, wenn du statt codeteile wie Case $GUI_EVENT_CLOSE lieber Case -3 nimmst. so sparst du dir includes und die datei wird kleiner
K1ramoX is offline  
Old 07/11/2013, 20:04   #8
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
ich möchte trotzdem noch die zip.au3 , oder bin ich wirklich zu dumm die zu finden ? (nein im anhang ist die nicht da ist die win api constants und word.au3)
YatoDev is offline  
Old 07/11/2013, 20:31   #9


 
K1ramoX's Avatar
 
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,847
Quote:
Originally Posted by »FlutterShy™ View Post
ich möchte trotzdem noch die zip.au3 , oder bin ich wirklich zu dumm die zu finden ? (nein im anhang ist die nicht da ist die win api constants und word.au3)


google hätte auch geholfen ;o
K1ramoX is offline  
Old 07/11/2013, 20:54   #10
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
Quote:
Originally Posted by »FlutterShy™ View Post
ich möchte trotzdem noch die zip.au3 , oder bin ich wirklich zu dumm die zu finden ? (nein im anhang ist die nicht da ist die win api constants und word.au3)


MfG
Achat is offline  
Old 07/11/2013, 21:17   #11
 
elite*gold: 0
Join Date: Jul 2013
Posts: 139
Received Thanks: 25
Quote:
Originally Posted by »FlutterShy™ View Post
ich möchte trotzdem noch die zip.au3 , oder bin ich wirklich zu dumm die zu finden ? (nein im anhang ist die nicht da ist die win api constants und word.au3)
LOL! Ich hasse Windows

Quote:
Originally Posted by *_Kenshi_* View Post
Anstadt ein extra Include zu nutzen könntest du auch einfach InetRead benutzen und das Ergebniss mit BinaryToString in einen String umwandeln.

Code:
$version = BinaryToString(InetRead("http://tim-lange.org/tut/version.txt",2))
Wenn du <p></p> sowieso löscht, wieso benutzt du dieses dann eigentlich?
Man könnte diese einfach weglassen und somit das StringReplace() sparen.

Du solltest darauf achten auf mögliche Fehler einzugehen und den Rückgabewert der Funktionen überprüfen.
Denn du weißt nicht ob der Download und somit das updaten erfolgreich war.

Je nach geschmack könnte man die zip.au3 auch raushauen und die Files einzelnt runterladen, wenn man allerdings lieber mit einem Zip-Packet arbeitet ist das auch okay.


mfg.
Ich hatte sonst immer das Problem, dass die Umbrüche nicht übernommen wurden!
Tiimä is offline  
Old 07/11/2013, 22:30   #12
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
Quote:
Originally Posted by Tiimä View Post
LOL! Ich hasse Windows



Ich hatte sonst immer das Problem, dass die Umbrüche nicht übernommen wurden!
Code?

Es gibt übrigens @LF, @CR und @CRLF
bzw \n \r \r\n

In einem Editor (z.B. Notepad++) kannst du dir auch nicht-druckbare Zeichen anzeigen.

MfG
Achat is offline  
Old 07/11/2013, 22:46   #13
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by K1ramoX View Post


google hätte auch geholfen ;o
Quote:
Originally Posted by Achat View Post
Code?

Es gibt übrigens @LF, @CR und @CRLF
bzw \n \r \r\n

In einem Editor (z.B. Notepad++) kannst du dir auch nicht-druckbare Zeichen anzeigen.

MfG
Ich wuerde sagen das es an der codierung des textes liegt .

Zu der zip.au3
Nein ich haette die mir nicht aus google suchen koennen ! ich hab vor einigen wochen hier schonmal nach einer gefragt welche aber nicht richtig oder garnicht funktioniert haben
YatoDev is offline  
Old 07/11/2013, 23:35   #14
 
elite*gold: 0
Join Date: Jul 2013
Posts: 139
Received Thanks: 25
Die richtige ist nun oben!
Tiimä is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[HowTo]Einfachen Installer erstellen mit NSIS
11/12/2012 - Flyff PServer Guides & Releases - 22 Replies
.
[HowTo] einfachen Valvuesearcher erstellen
02/07/2012 - Metin2 PServer Guides & Strategies - 5 Replies
Guten Tag, in diesem Tutorial werde ich euch einmal erklären , wie ihr ganz einfach einen Valvuesearcher erstellen könnt. Als Programmiersprache verwende ich Autoit. Gewisse Grundkenntnisse in Autoit sind für dieses Tutorial erforderlich. 1.) Erstellung einer GUI für den Valvuesearcher Zuerstmal einmal solltet ihr euch eine GUI für den Valvuesearcher erstellen, dazu könnt ihr den Koda Form Designer benutzen. So sieht meine GUI aus, damit ihr weißt, wie ihr es ungefähr machen könnt :...
Metin2 einfachen bypass erstellen
08/10/2011 - Metin2 Guides & Templates - 15 Replies
Ich hab heute ein thread gefunden. Indem ein Metin2 bypass angeboten wird. Wahrscheinlich ist schon bekannt wie das funkt aber hiermit möchte ich alle threads vermeiden. Geht in euren Metin2 ordner Rechtsklick Neu > Textdokument So jetzt geht ihr auf umbenennen und ändert .txt zu .bat Wenn das nicht geht geht ihr bei Windows 7 und Vista oben links auf Ordner und Suchoptionen oder so ähnlich dann auf Ansicht. Dann bei Datentyp bei bekannten Dateitypen ausblenden den hacken wegmachen So...
Einfachen Injector erstellen
04/16/2011 - WarRock Guides, Tutorials & Modifications - 17 Replies
Hallo e*PvP, Dieser Thread hat mir eine Menge Zeit und viel Aufwand gekostet. Aber ich hoffe ich konnte euer Wissen erweitern und euch weiterhelfen :) Hier die GANZEN schritte. #include <windows.h> #include <tlhelp32.h> //define functions BOOL IsAdministrator(VOID);
[HowTo]Einfachen Installer erstellen mit NSIS
04/09/2010 - Metin2 PServer Guides & Strategies - 11 Replies
Wer einen Installer für seinen Server machen will mit NSIS sollte dieses tutorial abarbeiten. Die Credits für diesen Guide gehen an Cross LG Sedrika



All times are GMT +2. The time now is 10:30.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.