Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 09:42

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

Advertisement



Updater Für Eure Programme

Discussion on Updater Für Eure Programme within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
Mr.Black.Data's Avatar
 
elite*gold: 25
Join Date: Jul 2010
Posts: 227
Received Thanks: 27
Updater Für Eure Programme

Guten Tag/Guten Abend Elitepvpers.

In Diesem Kleinem Tutorial möchte ich euch zeigen,wie ihr für eure Applications einen Simplen Updater machen Könnt.

Viel Spaß beim nachmachen!
©Mr.Black.Data
-Dieses Tutorial Darf weitergegeben werden Solange meine Credits Darin Enthalten sind!

1. FTP PROGRAMM: Könnt ihr euch aussuchen also zb (Filezilla,FlashFxP) Könnt ihr alle Müheloß bei Google Finden

2.FTP SERVER: Gibt es auch wieder ziemlich viele verschiedene (Ohost,Funpic,Bplaced) auch wieder bei Google zu Finden

3.Datei die ihr Benötigt Damit der Updater überhaupt was macht!

4.Coding!
=====

Nun Fangen wir an.
1.FTP PROGRAMM: Sobald Ihr euch ein FTP Frogramm gedownloadet habt, könnt ihr zu schritt 2 weitergehen!

2.FTP SERVER: Erstellt euch einen FTP Server und geht dan zu schritt 3 Weiter.

3.Erstellt eine neue Text Datei und fügt dort Folgendes ein:
Code:
neu
dannach bennent ihr sie in .euresache.html um
warum das erfahrt ihr bei schritt 4

4.Coding.
Startet euer Visualbasic und Erstellt eine neue Windows Forms Anwendung.
Dort Addet ihr:
2xWebbrowser Macht bei beiden,in den Eigenschaften bei "Visible" auf False
Das Bedeutet, das man die Beiden Webbrowser nicht sieht wenn man das Programm Debuggt!

1xButton.
Den Bennent ihr um wie ihr lustig seit.

So nun Kommen wir zu der oben erstellten datei.
Uploadet diese in euer FTP Verzeichnis, und dannach geht ihr per internet auf euer FTP Verzeichnis also zb
Code:
euerupdater.ohost.de
Dannach kopiert ihr euch den link der html datei.
Fügt diesen bei dem Ersten Webbrowser in den eigenschaften bei der Spalte "URL" ein.
Dan Uploadet ihr noch eine belibiege datei die gedownloadet werden soll, sobald neue Updates Verfügbar sind. (Bitte Uploadet es am besten per RAR Datei)
Dan geht ihr wieder in euer Verzeichnis und Kopiert den link der RAR datei.
==
CODING STARTS
==
Doppelklick auf euren Button
dort schreibt ihr dan folgendes Rein
Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If WebBrowser1.DocumentText = "alt" Then
            MsgBox("Euer TEXT Wenn Updates VORHANDEN SIND")
            WebBrowser2.Navigate("Den Link der Rar Datei auf eurem FTP SERVer")
        Else
            MsgBox("Es Sind keine neuen Updates Vorhanden")

        End If

    End Sub
End Class
Also, Wenn in der Html Datei KEIN "alt" drinnensteht sind KEINE neuen updates vorhanden, aber wenn "alt" drinnensteht dan sind welche vorhanden und der webbrowser 2 downloadet es.

Das mit der HTML Datei ist eure sache, es kann auch sein wenn
"Peter" drinnensteht das keine neuen updates da sind aber wenn
"Lustig" drinnensteht das welche da sind, das ist eigentlich eure Sache.

So ich Hoffe ich Konnte euch Helfen. Und Wenn ihr wollt, das ich euch zeige wie ihr diesen updater Ganz einfach in eure HAUPT Application einfügt dan lasst es mich unten in den Kommentaren wissen.
Obwohl ich Glaube das es eigentlich jeder Wissen sollte.

Mfg
Mr.Black.Data
Thanks währe nett


=======================
Guter Updater von DoctorPixl
=======================

Guten Abend/Guten Morgen Elitepvpers Community

In diesem Tutorial möchte ich euch zeigen wie man einen recht guten Updater für eure Anwendungen Programmiert.

Wir brauchen:
1x Form
1x Label
1x ProgressBar
1xFTP Server (square7,ohost,bplaced,kilu. etc...

(Wichtig: Gestaltet die Form am besten klein, da wir den updater in eure Anwendungen einbinden müssen)

So

Diesen Code fügt ihr in die Form ein, aber ich bitte euch nicht einfach Copy&Paste zu betreiben.
Versucht den Code zu verstehen

Code:
Imports System.Net

Public Class Form1
    Private WithEvents httpclient As WebClient
    Dim pfad As String = Nothing
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Hide()
ShowDialog:
        SaveFileDialog1.ShowDialog()
        If SaveFileDialog1.FileName = Nothing Then
            GoTo ShowDialog
        End If
        pfad = SaveFileDialog1.FileName


        Try
            httpclient = New WebClient
            Dim URL As String = "" 'Hier kommt der Link zur Datei die immer geupdated werden soll
            Me.Show()
            Application.DoEvents()
            httpclient.DownloadFileAsync(New Uri(url), pfad)
            Application.DoEvents()

        Catch ex As Exception
            MsgBox("Es ist folgender Fehler aufgetreten:" & vbNewLine & ex.ToString, MsgBoxStyle.Critical, "Es ist ein Fehler aufgetreten")

        End Try

    End Sub



    Private Sub httpclient_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles httpclient.DownloadFileCompleted
        MsgBox("") 'Die nachricht die angezeigt werden soll,wenn das update fertig ist
        Process.Start(pfad)
        Me.Close()

    End Sub

    Private Sub httpclient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles httpclient.DownloadProgressChanged
        Me.ProgressBar1.Value = e.ProgressPercentage
        Dim totalbytes As Double = e.TotalBytesToReceive
        Dim bytes As Double = e.BytesReceived
        Me.Label1.Text = bytes & " KB von " & totalbytes & "KB"

    End Sub
End Class

Nun brauchen wir noch den Code für eure Anwendung damit der Updater überhaupt sinn hat.

Dieser code kommt bei eurer Anwendung in die Form die als erstes gestartet wird(man kann es auch variabel machen, aber ich finde es so besser xP)

wie oben bereits gesagt kein reines copy&paste machen, sondern code verstehen

Code:
Dim VersionChecker As New System.Net.WebClient ' Erstellt eine neue Instanz von Webclient
        Dim ServerVersion As String = VersionChecker.DownloadString("euerftp\version.ini") 'Hier wird der Inhalt der Datei runtergeladen (zB. 1.1)
        Dim MeineVersion As String = Me.Label_v.Text ' Hier wird der Variable MeineVersion der Text von dem Label zugewiesen zB. 1.0

        If Not ServerVersion = MeineVersion Then
            MsgBox("Es ist eine Neuere Version von .. verfügbar,es wir nun Automatisch geupdatet", MsgBoxStyle.Information) 'text der kommt falls neue version vorhanden
            Shell(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\updater.exe")
            End
Ihr braucht ein Label namens:Label_v aber ihr könnt es auch umbennen wenn ihr wollt.
Und ein Label in der die Aktuelle Version steht,also zb 1.0 das is das besagte Label_v.text

Wie ihr dem Code eventuell bereits entlesen habt läuft das ganze über eine .ini die auf eurem ftp ist.
Falls in der ini 1.1 steht wird der updater automatisch updaten.
Falls in der ini 1.0 steht passiert nichts,also müsst ihr immer die V_Nummer in eurer Anwendung anpassen..


Okay, wir haben es fast geschafft, jetzt müssen wir nurnoch den updater in eure Anwendung einbinden

Das machen wir einfach so

Oben im Tooltip
Projekt/.... Eigentschaften/Ressourcen/Ressource Hinzufügen/Vorhandene Datei hinzufügen/updater auswählen.

Okay nun ist euer Updater startklar.
Ich hoffe ich konnte euch Helfen

Mfg:
-DoctorPixl
Mr.Black.Data is offline  
Thanks
14 Users
Old 07/28/2010, 16:44   #2
 
Variable_X's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 622
Received Thanks: 334
Ist ja noch leichter als mein Update System.
Variable_X is offline  
Thanks
1 User
Old 07/28/2010, 16:57   #3
 
P-a-i-n's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
ist recht sicher weil ohne daten für den ftp
mach das auch immer so nur das ich immer die version die man grade nutzt umnenne als programmname.bak das platz für die neue version ist so muss nichts gelöscht werden u.s.w ich noch bequemer
P-a-i-n is offline  
Thanks
1 User
Old 07/28/2010, 17:06   #4
 
Mr.Black.Data's Avatar
 
elite*gold: 25
Join Date: Jul 2010
Posts: 227
Received Thanks: 27
@Pain Evtl Editier ich das Nochmal und Werde noch eine "zweite Variante" Hinzufügen
das währ dan evtl deine,wo eben das aktuelle durch das neue ersetzt
Mr.Black.Data is offline  
Thanks
1 User
Old 07/31/2010, 20:36   #5
 
Jay Niize's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4,851
Received Thanks: 3,417
Nice

hier noch ein Video für dich/euch


#Added to List
Jay Niize is offline  
Thanks
2 Users
Old 07/05/2011, 15:05   #6
 
elite*gold: 0
Join Date: Jun 2009
Posts: 70
Received Thanks: 18
Das funktioniter nicht bei mir -.-
Der gibt immer aus, das keine updates vorhanden sind, egal was ich mache!

Hoffe das mir einer helfen kann...
Hier mein Code:
Im webbrowser, zeigt er mir auch "neu" an!

Quote:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If WebBrowser1.DocumentText = "neu" Then
MsgBox("Euer TEXT Wenn Updates VORHANDEN SIND")
'WebBrowser2.Navigate("Den Link der Rar Datei auf eurem FTP SERVer")
Else
MsgBox("Es Sind keine neuen Updates Vorhanden")

End If
End Sub
cheaterundhacker is offline  
Old 07/06/2011, 23:02   #7
 
Oreagel's Avatar
 
elite*gold: 1
Join Date: Aug 2009
Posts: 559
Received Thanks: 183
Dann müsste man aber eine unendliche Zahl an .txt Dateien haben.
Beispiel:

V1

Update v1.1 -> neu.txt

V1.1

Update v1.2 -> random.txt

etc.

Wenn dann jemand die V1 hat, muss er erst auf v1.1 und DANN auf V1.2 updaten.


Trotzdem nettes Anfängerfeature
Oreagel is offline  
Old 08/24/2011, 01:28   #8
 
Eddy123123123's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 64
Received Thanks: 14
Hab den Code ´n bissl verändert.. Er sollte ja nach einer neuen Version schauen und nicht nach einer Vorherigen.. Also Hab ich das so gemacht:


Code:
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        If [B]Not[/B] WebBrowser1.DocumentText = "Version = 1.2" Then
            MsgBox("Update not available")
        Else
            MsgBox("Update available")
            Updater.Show()
        End If
    End Sub
Bei "If" könnte man "NOT" Schreiben damit er sieht das es eine neuere Version gibt.

Updater.show() ist mein Update Fenster zur Auswahl ob man das Update laden möchte oder nicht.(Zur Info)

Wen´s Interessiert oder auch geholfen hat. Bitte ein Thanks.

Greetz Eddy123123123
Eddy123123123 is offline  
Old 08/24/2011, 19:23   #9
 
Che's Avatar
 
elite*gold: 120
Join Date: Aug 2010
Posts: 7,448
Received Thanks: 2,756
hrm das geht eleganter... und zwar so:

Vorbereitung
- Erstellt ne Datei mit dem Inhalt 1
- Gebt der Datei keine Endung, nennt sie einfach VERSION
- Ladet die Datei zu eurem Freehoster hoch und liefert sie mit eurem Programm mit

VB-Code:
- Erstelle ein neues Projekt und Speichere es
- Doppelklicke auf "My Projekt", klicke auf Verweise, dann auf Hinzufügen und gebe "C:/Windows/System32/shell32.dll" ein und klick auf OK
- Includiere folgendes
PHP Code:
Imports Shell32
Imports System
Imports System
.IO 
- Erstelle am Ende des Sources eine Neue Klasse
PHP Code:
Public Class ClassUnzip
    
Private _file As String
    
Private _folder As String
    
Private _shell As Shell32.IShellDispatch2
    
Public Sub New(ByVal file As String)
        
_file file
        _folder 
Application.StartupPath
        _shell 
CType(CreateObject("Shell.Application"), IShellDispatch2)
    
End Sub
    
Public Function UnzipNow() As Boolean
        
If Directory.Exists(_folder) = False Then
            Directory
.CreateDirectory(_folder)
        
End If
        
Dim temp As Shell32.Folder _shell.NameSpace((_folder))
        If 
temp IsNot Nothing Then
            temp
.CopyHere(_shell.NameSpace((_file)).Items)
        
End If
        Return 
True
    End 
Function
End Class 
- Definiere drei Variablen
PHP Code:
Dim version_aktuell As String 1
Dim version_update 
As String
Dim url 
As String httpeuerhoster.de 
- Überprüf ob die lokale Versionsdatei existiert
PHP Code:
If Dir$(Application.StartupPath "/" "VERSION")   Then 
- Les die Datei ein und Speichert den inhalt in die Variable version_aktuell
PHP Code:
version_aktuell My.Computer.FileSystem.ReadAllText(Application.StartupPath "/" VERSION)
End If 
- Schreibe den Inhalt der Datei in einen Integer
PHP Code:
Dim v as Integer
cint(val(version_aktuell))
ReDim version_aktuell As Integer 
- Rufe die Online-Versionsdatei ab und Speichere sie in die Variable version_update
PHP Code:
Using wc As New Net.WebClient()
version_update wc.DownloadString(url "VERSION")
End Using 
- Mache aus der Variable version_update einen Integer
PHP Code:
cint(val(version_update))
ReDim version_update As Integer 
- Vergleiche beide Variablen
PHP Code:
If not version_aktuell version_update then 
- Neuen Content herunterladen und entzippen
PHP Code:
While version_aktuell version_update
version_aktuell 
version_aktuell 1
wc
.DownloadFile(url version_aktuell ".zip"Application.StartupPath "/" version_aktuell ".zip")
Dim cu As New ClassUnzip(Appliction.StartupPath "/" version_aktuell ".zip")
cu.UnzipNow()
My.Computer.FileSystem.DeleteFile(Appliction.StartupPath "/" version_aktuell ".zip")
End While 
- So jetzt noch die neue Version in die lokale Versionsdatei schreiben
PHP Code:
Dim objDateiMacher As System.IO.StreamWriter
objDateiMacher 
= New StreamWriter(Application.StartupPath "/VERSION")
objDateiMacher.Write(version_update)
objDateiMacher.Close() 

Für Patches müsst ihr:

- Die Datei VERSION auf dem FTP-Server öffnen und die Zahl um 1 erhöhen und wieder Speichern + hochladen... whatever
- Eure Patches als .zip Datei Packen und diese Umbenennen in die Zahl, die ihr in der VERSION (aufm Server) stehen habt (VERSION: 5, Patch: 5.zip)


An den Threadsteller: wäre nice, wenn du in den ersten Post den Link zu diesem Post () mit reineditieren würdest, so finden die Leut die bessere Variante des Patchers leichter und ich brauch nicht extra nochmal n Thread aufmachen
Che is offline  
Thanks
1 User
Old 08/24/2011, 19:50   #10
 
Eddy123123123's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 64
Received Thanks: 14
das ist ja mal richtig umständlich auf gebaut

aber schlecht ist es nicht
Eddy123123123 is offline  
Old 08/24/2011, 22:50   #11
 
Che's Avatar
 
elite*gold: 120
Join Date: Aug 2010
Posts: 7,448
Received Thanks: 2,756
Quote:
Originally Posted by Eddy123123123 View Post
das ist ja mal richtig umständlich auf gebaut

aber schlecht ist es nicht
meinst etz meine version oder die vom threadsteller?
wennst meins meinst dann mal so nebenbei: is nur ne zusammenstellung von den wichtigsten funktionen meines eigenen patchers... n kompletten source draus bastel kann jeder selbst... sonst wärs ja einfach und einfach = langweilig ='D

achso nebenbei: wenn du etwas gut findest, dann kannst du um es zu verdeutlichen den thanks-button drücken (bin halt thx-geil ;D)
Che is offline  
Old 09/09/2011, 14:02   #12
 
Mr.Black.Data's Avatar
 
elite*gold: 25
Join Date: Jul 2010
Posts: 227
Received Thanks: 27
*Updater von DoctorPixl hinzugefügt*
Mr.Black.Data is offline  
Old 09/09/2011, 23:52   #13
 
Che's Avatar
 
elite*gold: 120
Join Date: Aug 2010
Posts: 7,448
Received Thanks: 2,756
Quote:
Originally Posted by Mr.Black.Data View Post
*Updater von DoctorPixl hinzugefügt*
Setze bitte einen Link zu meiner "chaotischen" Methode oder kopier/zitier den Post einfach, nur der vollständigkeit halber (außerdem ist sie stabiler und nicht so buganfällig wie die anderen beiden...)
Che is offline  
Old 09/10/2011, 01:10   #14
 
Mr.Black.Data's Avatar
 
elite*gold: 25
Join Date: Jul 2010
Posts: 227
Received Thanks: 27
Klar,deinen füge ich auchnoch ein
Mr.Black.Data is offline  
Old 03/02/2012, 22:10   #15
 
elite*gold: 0
Join Date: Mar 2012
Posts: 1
Received Thanks: 0
Hallo Leute

der Beitrag ist zwar schon etwas älter aber ich drehe mich derzeit extrem im kreis.

Ich habe mir ein updater runtergeladen.

Der Uploader sucht auch online und sieht neue Versionen...leider kann man diese imme downloaden.
Mein Ziel ist es eigentlich ein Upload tool zu nutzen welches erkennt das man schon die aktuelle Version nutzt.

Hat da evtl einer ein tip für mich oder kennt einer ein gutes tool in diesen bereich.

Gruß
klaus
klaus0001 is offline  
Reply


Similar Threads Similar Threads
[Buying] Eure Programme/Bots/Scripts etc.
04/26/2014 - elite*gold Trading - 17 Replies
Will das alles zum resellen,also brauch ich auch die verkaufsrechte Nehme eig alles solange der preis stimmt. Macht mir mal ein Angebot :)
Ich stelle eure Programme vor!
12/25/2012 - Freebies - 5 Replies
Hallo Com. Da ich etwas langeweile habe , und ein relativ gutes Headset habe wollte ich paar YouTube Videos drehen.Aber ich weiss nicht was ich drehen soll , deshalb biete ich euch das ich eure Programme//Tutorials per Video vorstelle bzw. zeige. Was kann ich vorstellen/drehen? -Ich kann eure Programme vorstellen, Tools, Hacks, Bots. -Ich könnte eure Tutorials per Video vorstellen. Und vieles mehr :D Nicht alle Game Hacks könnten gemacht werden, denn mein PC ist kein Gamer PC (Also...
Eure meist benutzten Programme? [Eure Meinung]
10/02/2012 - Off Topic - 260 Replies
Hey Com, Ich habe mich in letzter Zeit gefragt, welche Programme andere Leute wohl benutzen. Daher habe ich mich entschieden, diesen Thread zu öffnen, um eure Antwort zu bekommen. Gelten tuen: Jegliche Programme, ebenfalls Spiele, die von einem öffentlichen Unternehmen geschrieben / programmiert wurden. Das heißt, keine selbstgeschriebenen Anwendungen, da dies im Prinzip Werbung für das eigene Programm ist. Bitte keine Kommentare wie: "Unnötiger Thread." / "Lass doch den Müll"
Eure 5 meist benutzten Programme
04/30/2012 - Off Topic - 66 Replies
Hallo, mich würde mal interessieren welche Programme ihr am meisten verwendet. Bei mir sind es. Skype,ICQ,Chrome,Ts3 und Mozilla Thunderbird.



All times are GMT +1. The time now is 09:42.


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.