1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
using System;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Diagnostics;
using ICSharpCode.SharpZipLib.Core;
using ICSharpCode.SharpZipLib.Zip;
namespace Launcher
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string VersionActuelle;
private bool VerifyVersion()
{
StreamReader VersionReader = new StreamReader("version.txt");
string VersionClient = VersionReader.ReadToEnd(); // Lit le fichier version.txt dans le dossier ULDATA (Uplauncher Data)
VersionActuelle = ReadRemoteTextFile("http://lsl-rp.ga/landwars/version.txt"); // Lien à modifier
if (VersionActuelle == VersionClient)
return true;
else
return false;
}
private string ReadRemoteTextFile(string Url)
{
Uri uri = new Uri(Url); // Nouvelle URI à partir du paramètre, Url.
WebRequest wRequest = WebRequest.Create(uri); // On crée une requête.
WebResponse wResponse = wRequest.GetResponse(); // Sa réponse.
Stream ResponseStream = wResponse.GetResponseStream(); // En stream.
StreamReader sReader = new StreamReader(ResponseStream); // Un "lecteur" de stream..
string Temp = sReader.ReadToEnd(); // Qui lit le stream et nous donne le string.
return Temp;
}
private void Download(string Url, string DownloadTo)
{
WebClient wClient = new WebClient(); // On crée un WebClient, qui se chargera du téléchargement.
wClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(UpdateProgressChange); // On lui ajoute le handler de l'évènement.
wClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(UpdateDone); // L'autre évènement (Complétion)
wClient.DownloadFileAsync(new Uri(Url), DownloadTo); // On commence le téléchargement depuis l'URI spécifiée, et le fichier sera mis dans le chemin DownloadTo.
}
private void UpdateProgressChange(object sender, DownloadProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage; // Simple!
}
private void UpdateDone(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
// FastZip fastZip = new FastZip();
//string fileFilter = null;
MessageBox.Show("Mise à jour terminée! Vous pouvez désormais jouer.", "Notification"); // Message.
btnPlay.Enabled = true; // Vous vous souvenez de ça? On le remet à true.
//NOTE : Si vous avez un .rar à télécharger, et vous voulez l'extraire, utiliser SharpZipLib. Je ne ferai pas de tuto pour l'instant sur cela.
File.Delete("version.txt");
StreamWriter sWriter = File.CreateText("version.txt");
sWriter.Write(VersionActuelle);
System.Threading.Thread.Sleep(5000);
//fastZip.ExtractZip("maj.zip", "", fileFilter);
}
private void Form1_Load(object sender, EventArgs e)
{
btnPlay.Click += new EventHandler(btnPlay_Click);
btnSite.Click += new EventHandler(btnSite_Click);
btnPlay.Enabled = false;
if (VerifyVersion())
{
btnPlay.Enabled = true; // Version actuelle, OK!
}
else
{
Download("http://lsl-rp.ga/landwars/update/", "maj.zip"); // Télécharger si la version n'est pas actuelle
}
}
private void btnPlay_Click(object sender, EventArgs e)
{
Process p = new Process();
p.StartInfo = new ProcessStartInfo("Landwars.exe");
p.StartInfo.Arguments = "-game 751a5893e0f64feb22437f285ba4d21b29b58275205cdd12";
p.Start();
Application.Exit();
}
private void btnSite_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("http://lsl-rp.ga/landwars/");
}
}
} |
Partager