główna strona
wróć
[C#] Jak sprawdzić, czy posiadamy aktualną wersję programu?
Ostatnia zmiana: 08.07.2009, Autor artykułu: Waldemar Miotk
artykul-0028.png

Co jakiś czas autorzy programów udostępniają ich nowe wersje. Jako ci autorzy, chcielibyśmy, aby użytkownicy mogli sprawdzić, czy ich programy są aktualne. W tym artykule opiszę jak to zrobić w C# dla platformy .NET, zakładając, iż gdzieś na jakimś serwerze możemy umieszczać informację na temat aktualnej wersji oprogramowania.

Aby program mógł sprawdzić, czy istnieje aktualna wersja oprogramowania trzeba gdzieś w internecie umieścić informację na jej temat. Dla potrzeb tego artykułu przyjmuję, iż informacja zawarta będzie w pliku tekstowym o nazwie "wersja.txt" umieszczonym na serwerze pod adresem : "http://www.miotk.eu/". W treści pliku "wersja.txt" umieszczamy aktualną wersję programu, np. "1.12".

Ponieważ sprawdzanie wersji mogłoby doprowadzić do chwilowego "zawieszenia" się naszego programu, całość wykonamy więc w oddzielnym wątku. Upewnijmy się, iż istnieje przestrzeń nazw "Threading" w naszym programie. Jeżeli nie to dopiszmy:

using System.Threading;

Ponieważ będziemy korzystali z sieci i internetu upewnijmy się, iż przestrzenie nazw "Net" oraz "IO" również będą używane:

using System.Net;
using System.IO;

Definiujemy stałą w której będziemy przechowywali aktualną wersję programu:

private const string wersja = "1.12";

Piszemy funkcję sprawdzającą wersję programu:

private void sprawdz_wersje() {
   WebRequest rq = WebRequest.Create("http://www.miotk.eu/wersja.txt");
   rq.Credentials = CredentialCache.DefaultCredentials;
   HttpWebResponse rp = (HttpWebResponse)rq.GetResponse();
   Stream st = rp.GetResponseStream();
   StreamReader sr = new StreamReader(st);
   string odpowiedz = sr.ReadToEnd();
   if (wersja != odpowiedz)
      MessageBox.Show("Nowsza wersja tego oprogramowania jest już dostępna.");
   else
      MessageBox.Show("Masz najnowszą wersję oprogramowania.");
}


Nie wdając się zbytnio w szczegóły, sięgamy tutaj do pliku "wersja.txt" umieszczonego na serwerze, odczytujemy jego zawartość i porównujemy do stałej "wersja". Jeżeli się zgadza, to wersja programu jest aktualna, jeżeli nie, to jest starsza (oczywiście przy założeniu, że będziemy dbali o wersję programu umieszczoną na serwerze).

Teraz aby wszystko zadziałało musimy jakoś funkcję naszą wywołać. Przykładowo, na wciśnięcie przycisku:

private void button1_Click(object sender, EventArgs e) {
   Thread w_wersja = new Thread(new ThreadStart(this.sprawdz_wersje));
   w_wersja.IsBackground = true;
   w_wersja.Start();
}


w nowym wątku uruchamiamy nasz proces sprawdzania wersji.

 

Komentarze(0)

Podpis:
W celu potwierdzenia, zaznacz pole pod znakiem: S
Capcha
(c)2007-2016 Waldemar Miotk - ostatnia aktualizacja silnika 06.02.2016 - Twój IP: 18.191.237.228. Ta strona, aby lepiej działać, używa plików cookie przechowywanych na komputerach użytkowników. Wszystkie prawa do tekstów zamieszczonych na stronie są zastrzeżone, chyba że przy konkretnym tekście znajduje się inna informacja.
go up