Jump to content

Güncelleme Fonksiyonu


FİRE BİRD

Recommended Posts

Katılımsız AIO yapanlar için güncelleme fonksiyonu üzerinde bir çalışma yaptım fakat eksiği var.Mevcut olan sürümle ftp deki sürümün mukayesi olmalı diye düşünüyorum.Aşağıdaki kodlar üzerinde ne gibi değişiklikler yapmalıyım.

2mnomz6.jpg

RichText.SetText("RichText1", "Sunucu Aranıyor.....", false);
Application.Sleep(1000)
FTP.Connect("ftp.xxxxxx.com", "xxxxxx", "xxxxxx", "", true);
hata=Application.GetLastError();
if (hata~=0) then
RichText.SetText("RichText1", "Bağlantıda bir hata meydana geldi.", false);
Application.Sleep(3000)
Application.Exit(0);
end
RichText.SetText("RichText1", "Sunucuya Bağlandı.", false);
Application.Sleep(1000)
FTP.Download("/htdocs/update.exe", "C:\\update.exe", RichText.SetText("RichText1", "Güncelleme İndiriliyor.", false));
hata=Application.GetLastError();
if (hata~=0) then
RichText.SetText("RichText1", "Güncelleme Bulunamadı..", false);
Application.Sleep(5000)
Application.Exit(0);
end
RichText.SetText("RichText1", "Güncelleme İndirildi", false)[/CODE]

Link to comment
Share on other sites

@FİRE BİRD; Kodlar doğru fakat en son kısımdaki yani dosya download edildikten sonraki kısımda eğer hata verirse güncelleme bulunamadı mesajı ver demişsin. Bu neden böyleki? bir de güncellemeyi sadece indiriyor neden? İndirdikten sonra otomatik çalıştırabilirsin. Sürüm karşılaştırmasınıda söyle yaparsın. Projene bir ini dosyası koyup o anki sürüm nosunu yazarsın. Birde update.exe nin içinde yeni sürüm nosu olur. Update.exe yi çalıştırınca iki dosyadaki sürümleri karşılaştırır. Eğer aynı ise, güncellemeye gerek yok der. Eğer aynı değilse günceller.

Link to comment
Share on other sites

@FİRE BİRD; Kodlar doğru fakat en son kısımdaki yani dosya download edildikten sonraki kısımda eğer hata verirse güncelleme bulunamadı mesajı ver demişsin. Bu neden böyleki? bir de güncellemeyi sadece indiriyor neden? İndirdikten sonra otomatik çalıştırabilirsin. Sürüm karşılaştırmasınıda söyle yaparsın. Projene bir ini dosyası koyup o anki sürüm nosunu yazarsın. Birde update.exe nin içinde yeni sürüm nosu olur. Update.exe yi çalıştırınca iki dosyadaki sürümleri karşılaştırır. Eğer aynı ise, güncellemeye gerek yok der. Eğer aynı değilse günceller.

Bir ini dosyasını ftp ye koyup ,gerek varsa update exe yi indirilmesini sağlamak kotalı kullanıcılar açısından daha sağlıklı olur diye düşünüyorum.

Link to comment
Share on other sites

@FİRE BİRD, @blackman12, eğer sunucudan kontrol etmek istiyorsanız sunucuya koyacağınız xml dosya ile ini dosyasını eşleştirebilirsiniz. Daha temiz bir yöntem.

XML.Download("http://www.site.com/update.xml", "C:\\update.xml") -- xml dosyasını indir
XML.Load("C:\update.xml") -- hafizaya yükle
a = XML.GetValue("program/version") -- versiyon bilgisini al
b = INIFile.GetValu("Autoplay\\Docs\\veri.ini", "program", "version") -- inideki versiyon bilgisini al
if a ~= b then -- eger versiyonlar eşleşmezse
HTTP.Download("www.site.com/update.exe", "C:\\update.exe", 20, 80) --güncellemeyi indir
File.Run("C:\\update.exe", "", "") -- güncellemeyi çalıştır
Application.Exit(); -- programdan çık
else -- eğer versiyon eşleşirse
Dialog.Message("Tebrikler", "Güncellemeye gerek yok") -- gerek yok mesajı ver
end[/CODE]

Kodlar saırım bu sekilde yapilirsa olabilir. Şu an AMS bu makinada kurulu olmadığı için kodları kafadan yazdım, hata olabilir.

Link to comment
Share on other sites

@FİRE BİRD, @blackman12, eğer sunucudan kontrol etmek istiyorsanız sunucuya koyacağınız xml dosya ile ini dosyasını eşleştirebilirsiniz. Daha temiz bir yöntem.

XML.Download("http://www.site.com/update.xml", "C:\\update.xml") -- xml dosyasını indir
   XML.Load("C:\update.xml") -- hafizaya yükle
   a = XML.GetValue("program/version") -- versiyon bilgisini al
   b = INIFile.GetValu("Autoplay\\Docs\\veri.ini", "program", "version") -- inideki versiyon bilgisini al
   if a ~= b then -- eger versiyonlar eşleşmezse
   HTTP.Download("www.site.com/update.exe", "C:\\update.exe", 20, 80) --güncellemeyi indir
   File.Run("C:\\update.exe", "", "") -- güncellemeyi çalıştır
   Application.Exit(); -- programdan çık
   else -- eğer versiyon eşleşirse
   Dialog.Message("Tebrikler", "Güncellemeye gerek yok") -- gerek yok mesajı ver
   end[/CODE]

Kodlar saırım bu sekilde yapilirsa olabilir. Şu an AMS bu makinada kurulu olmadığı için kodları kafadan yazdım, hata olabilir.

Biraz düzenlemeden sonra işe yarar hale geldi :

[CODE]HTTP.Download("http://www.deneme.com/Update.xml", "C:\\Update.xml", 20, 80) -- xml dosyasını indir
XML.Load("C:\\Update.xml") -- hafizaya yükle
a = XML.GetValue("version") -- versiyon bilgisini al
XML.Load("AutoPlay\\Docs\\ref.xml") -- hafizaya yükle
b = XML.GetValue("version") -- versiyon bilgisini al
if a > b then -- eger versiyon eskiyse
HTTP.Download("http://www.deneme.com/update.exe", "C:\\update.exe", 20, 80) --güncellemeyi indir
File.Open("C:\\update.exe", "", SW_SHOWNORMAL); -- güncellemeyi çalıştır
else -- eğer versiyon yeniyse
Dialog.Message("Tebrikler", "Güncellemeye gerek yok") -- gerek yok mesajı ver
end[/CODE]

Teşekkürler KintaRo

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...