Вырубатель
18.02.2013, 18:58
итак сегодня я вам покажу как сделать авто обновление для своего Checker-a и так приступим открываем проект Checker
открываем Program.cs и вставляем после этого
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
VersionChecker verChecker = new VersionChecker();
string ServerVersion = "[Ссылки могут видеть только зарегистрированные и активированные пользователи]"; заменить на сваю ссылку
FileStream fs = new FileStream(@"Version.ini", FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.Default);
string localVersion = sr.ReadToEnd();
[Ссылки могут видеть только зарегистрированные и активированные пользователи] request = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])WebRequest.Create(ServerVersion);
[Ссылки могут видеть только зарегистрированные и активированные пользователи] response = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
ServerVersion = reader.ReadToEnd();
if (verChecker.NewVersionExists(localVersion, ServerVersion))
{
System.Diagnostics.Process MyProc = new System.Diagnostics.Process();
MyProc.StartInfo.FileName = @"Updater.exe";
MyProc.Start();
Application.Exit();
}
else
{
Application.Run(new Checker());
}
}
}
}
class VersionChecker
{
public bool NewVersionExists(string localVersion, string versionFromServer)
{
Version verLocal = new Version(localVersion);
Version verWeb = new Version(versionFromServer);
return verLocal < verWeb;
}
}
}
и в самом верху вставляем
using System.IO;
using System.Net;
всё закрываем проект Checker
теперь создаем новый проект настраиваем форму как вам угодно
у меня выглядит так
[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
и так вы настроили форму далее переходим к коду формы
в самом верху пишем
using System.IO;
using System.Net;
теперь вставляем после
public partial class Form1 : Form
{
System.Net.WebClient webClient = new System.Net.WebClient();
после это вставляем
public Form1()
{
InitializeComponent();
}
void Загрузка()
{
Uri uri = new Uri("[Ссылки могут видеть только зарегистрированные и активированные пользователи]");
webClient.DownloadFileAsync(uri, "Checker.exe");
webClient.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(web Client_DownloadProgressChanged);
webClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(w ebClient_DownloadFileCompleted);
}
void webClient_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
void webClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
progressBar1.Value = 0;
string localVersionFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory , "Version.ini");
string ServerVersionFile = "[Ссылки могут видеть только зарегистрированные и активированные пользователи]";
if (File.Exists(localVersionFile))
{
string localVersion = null;
string ServerVersion = null;
using (StreamReader sr = File.OpenText(localVersionFile))
localVersion = sr.ReadLine();
[Ссылки могут видеть только зарегистрированные и активированные пользователи] request = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])WebRequest.Create(ServerVersionFil e);
[Ссылки могут видеть только зарегистрированные и активированные пользователи] response = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
ServerVersion = reader.ReadToEnd();
if (!string.IsNullOrWhiteSpace(localVersion))
{
using (StreamWriter sw = new StreamWriter(localVersionFile))
sw.Write(ServerVersion);
}
}
Thread.Sleep(2000);
System.Diagnostics.Process MyProc = new System.Diagnostics.Process();
MyProc.StartInfo.FileName = @"Checker.exe";
MyProc.Start();
Application.Exit();
}
}
}
и после этого
InitializeComponent();
пишем
Загрузка();
теперь открываем Program.cs
и вставляем это после
}
}
class VersionChecker
{
public bool NewVersionExists(string localVersion, string versionFromServer)
{
Version verLocal = new Version(localVersion);
Version verWeb = new Version(versionFromServer);
return verLocal < verWeb;
}
}
}
Checker ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
открываем Program.cs и вставляем после этого
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
VersionChecker verChecker = new VersionChecker();
string ServerVersion = "[Ссылки могут видеть только зарегистрированные и активированные пользователи]"; заменить на сваю ссылку
FileStream fs = new FileStream(@"Version.ini", FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.Default);
string localVersion = sr.ReadToEnd();
[Ссылки могут видеть только зарегистрированные и активированные пользователи] request = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])WebRequest.Create(ServerVersion);
[Ссылки могут видеть только зарегистрированные и активированные пользователи] response = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
ServerVersion = reader.ReadToEnd();
if (verChecker.NewVersionExists(localVersion, ServerVersion))
{
System.Diagnostics.Process MyProc = new System.Diagnostics.Process();
MyProc.StartInfo.FileName = @"Updater.exe";
MyProc.Start();
Application.Exit();
}
else
{
Application.Run(new Checker());
}
}
}
}
class VersionChecker
{
public bool NewVersionExists(string localVersion, string versionFromServer)
{
Version verLocal = new Version(localVersion);
Version verWeb = new Version(versionFromServer);
return verLocal < verWeb;
}
}
}
и в самом верху вставляем
using System.IO;
using System.Net;
всё закрываем проект Checker
теперь создаем новый проект настраиваем форму как вам угодно
у меня выглядит так
[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
и так вы настроили форму далее переходим к коду формы
в самом верху пишем
using System.IO;
using System.Net;
теперь вставляем после
public partial class Form1 : Form
{
System.Net.WebClient webClient = new System.Net.WebClient();
после это вставляем
public Form1()
{
InitializeComponent();
}
void Загрузка()
{
Uri uri = new Uri("[Ссылки могут видеть только зарегистрированные и активированные пользователи]");
webClient.DownloadFileAsync(uri, "Checker.exe");
webClient.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(web Client_DownloadProgressChanged);
webClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(w ebClient_DownloadFileCompleted);
}
void webClient_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
void webClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
progressBar1.Value = 0;
string localVersionFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory , "Version.ini");
string ServerVersionFile = "[Ссылки могут видеть только зарегистрированные и активированные пользователи]";
if (File.Exists(localVersionFile))
{
string localVersion = null;
string ServerVersion = null;
using (StreamReader sr = File.OpenText(localVersionFile))
localVersion = sr.ReadLine();
[Ссылки могут видеть только зарегистрированные и активированные пользователи] request = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])WebRequest.Create(ServerVersionFil e);
[Ссылки могут видеть только зарегистрированные и активированные пользователи] response = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
ServerVersion = reader.ReadToEnd();
if (!string.IsNullOrWhiteSpace(localVersion))
{
using (StreamWriter sw = new StreamWriter(localVersionFile))
sw.Write(ServerVersion);
}
}
Thread.Sleep(2000);
System.Diagnostics.Process MyProc = new System.Diagnostics.Process();
MyProc.StartInfo.FileName = @"Checker.exe";
MyProc.Start();
Application.Exit();
}
}
}
и после этого
InitializeComponent();
пишем
Загрузка();
теперь открываем Program.cs
и вставляем это после
}
}
class VersionChecker
{
public bool NewVersionExists(string localVersion, string versionFromServer)
{
Version verLocal = new Version(localVersion);
Version verWeb = new Version(versionFromServer);
return verLocal < verWeb;
}
}
}
Checker ([Ссылки могут видеть только зарегистрированные и активированные пользователи])