• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[Source] Semplice Update
#1
Dopo aver postato il primo source dell'update abbastanza buggato, vi posto questo source che è l'attuale update che usa il mio BatchEditor, quindi con molti meno bug di quello di prima.

Questo codice ve lo consiglio di inserire no nell'update, ma nel programma princiapale cosi, appena si avvia il programma già scarica\crea il file\cartella.

Codice:
Imports Update.Update
Imports System.Net
Imports System.IO

Public Class Form1

Public WithEvents downloadVecchio As New WebClient
Public WithEvents downloadOldVersioneSeNonEsiste As New WebClient

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try


            System.IO.Directory.CreateDirectory("temp")

            If (Not System.IO.File.Exists("versione.txt")) Then
                downloadOldVersioneSeNonEsiste.DownloadFileAsync(New Uri("http://kiragame.altervista.org/VecchiaVersione.txt"), "versione.txt")
            End If


            If (Directory.Exists("temp")) Then
                downloadVecchio.DownloadFileAsync(New Uri("http://kiragame.altervista.org/NuovaVersione.txt"), "temp\versione.txt")
            End If

            downloadOldVersioneSeNonEsiste.Dispose()
        Catch ex As Exception

        End Try
End Sub

Ora passiamo al source dell'update. Se avete provato il mio batcheditor, potete notare la dll: "Update" e li ce tutto il codice che vi sto per postare, quindi è codice per una DLL, anche se non cambia molto, anzi non cambia nulla confronto ad un codice per un progetto windows form.

Codice:
Imports System.Windows.Forms
Imports System.Net
Imports System.IO

Public Class Update

    Public WithEvents download As New WebClient
  

    Private Sub Update_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub download_DownloadProgressChanged(ByVal sender As Object, ByVal e As Net.DownloadProgressChangedEventArgs) Handles download.DownloadProgressChanged

        ProgressBar1.Value = e.ProgressPercentage

    End Sub

    Private Sub PrgComplete(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download.DownloadFileCompleted

        Dim downloadNewVersione As New WebClient

        MessageBox.Show("Download completato. Chiudere l'applicazione prima di installare gli aggiornamenti.", "Download Completato", MessageBoxButtons.OK, MessageBoxIcon.Information)
        downloadNewVersione.DownloadFileAsync(New Uri("http://kiragame.altervista.org/NuovaVersione.txt"), "versione.txt")
        System.Diagnostics.Process.Start("setup.exe")
        ProgressBar1.Value = 0

    End Sub

    Private Sub EsciToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Application.Exit()
    End Sub

    Private Sub UpdateToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UpdateToolStripMenuItem.Click


        Dim oldVersione As New StreamReader("versione.txt")
        Dim newVersione As New StreamReader("temp\versione.txt")

        Dim leggiOld As String
        Dim leggiNew As String

        Try

            leggiOld = oldVersione.ReadLine()
            leggiNew = newVersione.ReadLine()

            If (Not leggiNew.Equals(leggiOld)) Then

                If (MessageBox.Show("È disponibile una nuova versione del client, desideri scaricarla ?", "Update", MessageBoxButtons.YesNo, MessageBoxIcon.Information)) = MsgBoxResult.Yes Then
                    download.DownloadFileAsync(New Uri("http://kiragame.altervista.org/setup.exe"), "setup.exe")
                End If

            Else

                MessageBox.Show("Non ci sono aggiornamenti", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information)
                download.CancelAsync()
            
            End If

        Catch ex As Exception

        End Try

        oldVersione.Dispose()
        newVersione.Dispose()

    End Sub

End Class

Fine. Non è un update chissà quanto difficile o chissà quanto professionale, ma può essere sempre utile per fare un update per i nostri programmini.

P.S: Il source non è commentato in quanto è abbastanza semplice....
 
Rispondi
#2
quello che uso nel mio programma è diverso..di sicuro è ancora più elementare di questo ma è ultraleggero xD
In totale ha 5 righe il mio LoL
 
Rispondi
#3
A me già questo update sembra che ha poche righe di codice !

Anche se già questo funziona abbastanza bene:

Controlla se ci sono gli aggiornamenti;
Se ci sono li scarica e aggiorna anche la versione.txt cosi non riscaricherà di nuovo gli aggiornamenti;
Leggero, non occupa nulla;
ProgressBar che segue il download;
Crea il file: "versione.txt" e la cartella "temp" se non esistono, altrimenti non crea nulla;
e altro, sempre se ho mancato qualcosa...

L'update vecchio, si, scaricava gli aggiornamenti, ma:

1. Te li trovava sempre;
2. C'erano alcuni errori di programmazione non gestiti;
3. L'aggiornamenti della versione.txt non avveniva correttamente
etc..

Quindi con 5 righe di codice che controlli ci hai fatto fare ? XD
Magari postalo, cosi hanno più scelte....
 
Rispondi
#4
Riddick non ho più codice..sai benissimo che ho perso tutto asd
comunque in quel poco codice che hai scritto fa davvero tante cose xD
 
Rispondi
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  [Guida] Semplice Downloader con Progressbar Visual Basic.Net Express 2010 Riddick 16 8,656 29-01-2013, 12:45 AM
Ultimo messaggio: THB93
  [Guida] Semplice Radio in Visual Basic.Net Express 2010 Riddick 3 3,368 20-11-2010, 10:40 PM
Ultimo messaggio: GEARS_CORPORATION

Vai al forum:


Browsing: 1 Ospite(i)