12-04-2011, 02:13 PM
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.
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.
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....
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....