Привет всем читерам!
Вот я написал экзамен и теперь дня 4-е можно и позадротить)
Вот вам темка про Updater.
1) Создаем проект: С# - Win.Form
2) На форму кидаем:
webBrowser - 1шт (можно и richTextBox, но кода будет больше, так что пойдем более легким путем)
button - 1шт
progressBar - 1шт
label - 2шт
3) Перейдем к коду:
Подключаем:
webBrowser
Выделяем webBrowser и в свойствах указываем ссылку на фаил txt с описанием(UTF-8)
button
Внутри partial class Form1 : Form пишем
Для кнопки зададим скачавание фаила в папку с программай
+ прикрутим ко всему этому progressBar и небольшую инфу о скачивание
Двойной клик по кнопке, пишем:
Ниже задаем заполнение progressBar и инфы о фаиле:
Теперь зададим действие при завершению загрузки фаила:
Теперь организуем проверку версий программы:
В папке с программой создаем фаил version.ini и загружаем на сервер. В фаиле пишем версию программы(например 0.1).
Если версия на сервере будет отличатся от версии в папке с программой, то в лейбл выводим соответствующее сообщение.
После скачивания фаила, версия программы в папке с exe будет переписана на версию с сервера...
(я использовал narod2.yandex.ru, на юкозе почему-то проподает запрос....)
Для начала создадим класс для сравнения:
Теперь организуем перезапись version.ini
В webClient_DownloadFileCompleted дописываем
Вот я написал экзамен и теперь дня 4-е можно и позадротить)
Вот вам темка про Updater.
1) Создаем проект: С# - Win.Form
2) На форму кидаем:
webBrowser - 1шт (можно и richTextBox, но кода будет больше, так что пойдем более легким путем)
button - 1шт
progressBar - 1шт
label - 2шт
3) Перейдем к коду:
Подключаем:
Код:
using System.IO; using System.Net; using System.Threading; using System.Diagnostics;
webBrowser
Выделяем webBrowser и в свойствах указываем ссылку на фаил txt с описанием(UTF-8)
button
Внутри partial class Form1 : Form пишем
Код:
System.Net.WebClient webClient = new System.Net.WebClient();//Определяем
Для кнопки зададим скачавание фаила в папку с программай
+ прикрутим ко всему этому progressBar и небольшую инфу о скачивание
Двойной клик по кнопке, пишем:
Код:
Uri uri = new Uri("http://Сайт.ru/wh/фаилл.rar");//для примера ссылка на фаил))))))))
webClient.DownloadFileAsync(uri, "фаилл.rar");//сохраняем фаил под именем
//Следующей строчкой задаем заполнение и привязку к действию
webClient.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
Ниже задаем заполнение progressBar и инфы о фаиле:
Код:
void webClient_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
{
label1.Text = String.Format("Загружено: {0} Кбайт / {1} Кбайт", e.BytesReceived / 1024, e.TotalBytesToReceive / 1024);//Выводим в лейбл информацию о процессе загрузки
progressBar1.Value = e.ProgressPercentage;// заполняем
}
Теперь зададим действие при завершению загрузки фаила:
Код:
void webClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
MessageBox.Show("Файл скачан!");//по оканчанию загрузки выводим сообщение
progressBar1.Value = 0;//сброс progressBar2
label1.Visible = false;// сброс лейбл
Теперь организуем проверку версий программы:
В папке с программой создаем фаил version.ini и загружаем на сервер. В фаиле пишем версию программы(например 0.1).
Если версия на сервере будет отличатся от версии в папке с программой, то в лейбл выводим соответствующее сообщение.
После скачивания фаила, версия программы в папке с exe будет переписана на версию с сервера...
(я использовал narod2.yandex.ru, на юкозе почему-то проподает запрос....)
Для начала создадим класс для сравнения:
Код:
class VersionChecker
{
public bool NewVersionExists(string localVersion, string versionFromServer)
{
Version verLocal = new Version(localVersion);
Version verWeb = new Version(versionFromServer);
return verLocal < verWeb;
}
}
В Form_Load(двойной клик на форме) пишем:
//----Определение обновлений-------
VersionChecker verChecker = new VersionChecker();
string ServerVersion = "http://*****.narod2.ru/wh/version.ini";
FileStream fs = new FileStream(@"version.ini", FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.Default);
string localVersion = sr.ReadToEnd();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ServerVersion);// Веб запрос к нашему серверу
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Ответ сервера
using (StreamReader reader = new StreamReader(response.GetResponseStream()))// Используем чтение потока данных
{
ServerVersion = reader.ReadToEnd();// Пытаемся получить версию сервера, приобразуя в Int32
/*Сравниваем*/
if (verChecker.NewVersionExists(localVersion, ServerVersion))
label2.Text += "Доступна новая версия";//если версии отличаются
else
label2.Text += "У вас самая последняя версия";//если версии одинаковые
}
fs.Close();//закрываем фаил для перезаписи версий
Теперь организуем перезапись version.ini
В webClient_DownloadFileCompleted дописываем
Код:
//-------Перезаписываем version.ini--
string localVersionFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "version.ini");
string ServerVersionFile = "http://******narod2.ru/wh/version.ini";
if (File.Exists(localVersionFile))
{
string localVersion = null;
string ServerVersion = null;
using (StreamReader sr = File.OpenText(localVersionFile))
localVersion = sr.ReadLine(); //Предположим у тебя одна строка в файле
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ServerVersionFile);// Веб запрос к нашему серверу
HttpWebResponse response = (HttpWebResponse)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);
}