ForumSevgisi.Com

  ForumSevgisi.Com > ForumSevgisi Webmaster Bölümü > Webmaster Genel

Webmaster Genel Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


kendini güncelleyen program

Webmasterlıkla ilgili Her şeyin Paylaşıldığı Bölüm.


kendini güncelleyen program

ForumSevgisi Webmaster Bölümü Kategorisinde ve Webmaster Genel Forumunda Bulunan kendini güncelleyen program Konusunu Görüntülemektesiniz,Konu İçerigi Kısaca ->> kendini güncelleyen program - Formunuza birer tane TIdFTP, TGauge, TStatusBar ve TButton koyun... - Yapılan işlem kısaca şu : Yazılımınız ...

Kullanıcı Etiket Listesi

Yeni Konu aç  Cevapla
LinkBack Seçenekler Stil

Okunmamış 09 Nisan 2015, 16:15   #1
Durumu:
Çevrimdışı
Kaf_Dağı - ait Kullanıcı Resmi (Avatar)
Arastirmaci
Üyelik tarihi: 26 Ekim 2014
Şehir: ~~~~~~
Mesajlar: 1.130
Konular: 710
Beğenilen: 168
Beğendiği: 334
www.forumsevgisi.com
Standart kendini güncelleyen program

kendini güncelleyen program

- Formunuza birer tane TIdFTP, TGauge, TStatusBar ve TButton koyun...



- Yapılan işlem kısaca şu : Yazılımınız ile tıpatıp aynı isimdeki bir dosyayı FTP sitesinden download edecek, ardından yazılımınızın kendi kendini kapatılması sağlanarak, siteden indirilen dosya ile yenilenecek ve yeni haliyle tekrar çalışacak şekilde tasarlandı.



- Bilerek bu örnek için 1 MB FTP'de yer ayırdım. Kısa süreliğine açık kalacak daha sonra kapatıcam. İlk denemeler için belki merak eden olur..

Kod:
        Var
xDosyaUzunluk : LongInt;
 
function FTPDosyaAl( IdFTP : TIdFTP; SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;
begin // Uses IdFTP, IdFTPCommon
Result := False;
IdFtp.Host := Ftp;
IdFtp.Username := Login;
IdFtp.Password := Pass;
IdFtp.Passive := True;
IdFtp.Connect;
If IdFtp.Connected then
begin
IdFtp.ChangeDir(RemoteDir);
// Gauge'de kullanmak için
// Dosya Uzunluğunu grlobal bir değişkene atıyoruz...
xDosyaUzunluk := IdFtp.Size( SrcDosya );
Try
IdFtp.TransferType := ftBinary; // Uses IdFTPCommon
IdFtp.Get(SrcDosya, DesDosya, True);
Finally
Result := True;
end;
IdFtp.Quit;
end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
If FileExists(ExtractFilePath(Application.Exename) +'Guncelle.BAT')
then DeleteFile(ExtractFilePath(Application.Exename) +'Guncelle.BAT');
end;
 
procedure TForm1.Guncelle();
Var
FTPAdres,
KaynakDizin,
Name,
Pass,
KaynakDosya,
HedefDosya : String;
begin
// Bilerek bu örnek için 1 MB yer ayırarak açtığım FTP sunucu adresini veriyorum...
FTPAdres := 'emerkez.info';
KaynakDizin := '/programlar';
Name := 'delphi';
Pass := 'arman';
KaynakDosya := ExtractFileName(Application.Exename);
HedefDosya := ChangeFileExt( ExtractFilePath(Application.Exename) + KaynakDosya, '.BAK' );
HedefDosya := ChangeFileExt( ExtractFilePath(Application.Exename) + KaynakDosya, '.BAK' );
 
If FileExists(HedefDosya) AND ( MessageDlg('Hedef Dosya Mevcut, üzerine yazılsın mı ? '+#13'('+HedefDosya+')', mtInformation, [mbYes, mbCancel], 0) = mrCancel )
then EXIT
else DeleteFile(HedefDosya);
 
If FTPDosyaAl( IdFtp, KaynakDosya, HedefDosya, FTPAdres, KaynakDizin, Name, Pass )
then MessageDlg('Dosya Başarıyla Alındı'+#13#13
+ 'şimdi program yeniden başlatılmak üzere kapatılacaktır....',
mtConfirmation, [mbOk], 0)
else MessageDlg('Dosya Alınamadı'+#13'('+KaynakDosya+')', mtError, [mbok], 0);
 
With TStringList.Create do begin
Add('.Echo Off' );
Add( Format('Copy %s %s', [ChangeFileExt(Application.ExeName,'.BAK'), Application.ExeName]) );
Add('DEL '+ChangeFileExt(Application.ExeName,'.BAK'));
Add( Application.ExeName );
SaveToFile( ExtractFilePath(Application.Exename)+'Guncelle.BAT ' );
Free;
end;
Application.Terminate;
WinExec( PChar( ExtractFilePath(Application.Exename)+'Guncelle.BAT '), SW_Hide );
end;
 
procedure TForm1.IdFtpStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
StatusBar1.SimpleText := AStatusText;
end;
 
procedure TForm1.IdFtpWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Integer);
begin
Gauge1.Progress := AWorkCount;
Application.ProcessMessages;
end;
 
procedure TForm1.IdFtpWorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Integer);
begin
Gauge1.MinValue := 0;
Gauge1.MaxValue := xDosyaUzunluk;
Gauge1.Progress := 0;
Gauge1.Visible := True;
end;
 
procedure TForm1.IdFtpWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
Gauge1.Progress := 0;
Gauge1.Visible := False;
end;
Kullanımı ise şu kadar basit...
 
 
 
 
Kod:
procedure TForm1.Button1Click(Sender: TObject);
begin
Guncelle();
end;

________________
.........................
imza
Alıntı ile Cevapla
Yeni Konu aç  Cevapla

Etiketler
guncelleyen, kendini, program

Seçenekler
Stil


Saat: 07:51

Forum Yasal Uyarı
vBulletin® ile Oluşturuldu
Copyright © 2016 vBulletin Solutions, Inc. All rights reserved.

ForumSevgisi.Com Her Hakkı Saklıdır
Tema Tasarım:
Kronik Depresif


Sitemiz bir 'paylaşım' sitesidir. Bu yüzden sitemize kayıt olan herkes kontrol edilmeksizin mesaj/konu/resim paylaşabiliyorlar. Bu sebepten ötürü, sitemizdeki mesaj ya da konulardan doğabilecek yasal sorumluluklar o yazıyı paylaşan kullanıcıya aittir ve iletişim adresine mail atıldığı taktirde mesaj ya da konu en fazla 48 saat içerisinde silinecektir.

ankara escort, izmir escort ankara escort, ankara escort bayan, eryaman escort, bursa escort pendik escort, antalya escort,