Moduł AutoUpdate

0

Cześć @LL

Chciałbym zrobić w Delphi 6 swój własny moduł uaktualniania programu z mojej strony internetowej. Zaznaczam, że strona znajduje się na moim domowym serwerze. Wiem, że takie moduły już istnieją, ale nie chcę żadnych reklam, oraz muszę mieć dostęp do kodu źródłowego, a tamte oferty takowych wymagań nie spełniają za darmo :d.
Jak się za coś takiego zabrać? Czy znacie jakeś dobre materiały na ten temat? Proszę - pomóżcie.

0

kodzik :P

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
HTTPGet, ExtCtrls, StdCtrls, Buttons,registry;

type
TForm1 = class(TForm)
down: THTTPGet;
Image1: TImage;
Bevel1: TBevel;
Bevel2: TBevel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Memo1: TMemo;
Timer1: TTimer;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure downError(Sender: TObject);
procedure downProgress(Sender: TObject; TotalSize, Readed: Integer);
procedure downDoneFile(Sender: TObject; FileName: String;
FileSize: Integer);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
procedure instaluj;
end;

var
Form1: TForm1;
r : tregistry;
pversion : string;
sxox, sxor : single;
sciezka : string;
ist : boolean = false;

implementation

uses Unit2, Unit3;

{$R *.DFM}

function extracturlfilename(url : string) : string;
var
s : string;
i : integer;
begin
s := url;
for i:=0 to length(url) do
delete(s,1,pos('/',s));
result := s;
end;

procedure tform1.instaluj;
var
i : integer;
s : string;
begin
form3.show;
ist := true;
form3.progressbar2.max := memo1.lines.count;
for i:=1 to memo1.lines.count do
begin
s := lowercase(memo1.lines[i]);
down.URL := memo1.lines[i];
down.FileName := sciezka +''+extracturlfilename(memo1.lines[i]);
down.GetFile;
form3.progressbar2.position := i;
end;
Showmessage('Aktualizacja zakończona!');
r.writestring('Version',memo1.lines[0]);
form1.close;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
Showmessage('Dzięki temu programowi możesz aktualizowac program Pargan3D, sciągając potrzebne rzeczy z internetu.');
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
r := tregistry.create;
r.RootKey := HKEY_LOCAL_MACHINE;
r.OpenKey('Softwareqlsoftpargan3d',true);
sciezka := r.ReadString('Path');
pversion := r.ReadString('Version');
sxox := strtofloat(pversion);
down.URL := 'http://www.resportgql.republika.pl/update.cfg';
down.FileName := 'C:WINDOWSTempupdate.cfg';
down.GetFile;
form2.show;
//r.Free;
end;

procedure TForm1.downError(Sender: TObject);
begin
Showmessage('Wystąpil bląd podczas sciągania pliku. Przerywam proces. Nastąpi zamknięcie aplikacji!');
form1.close;
end;

procedure TForm1.downProgress(Sender: TObject; TotalSize, Readed: Integer);
begin
if ist = true then
begin
form3.ProgressBar1.Max := totalsize;
form3.ProgressBar1.Position := readed;
end else
begin
form2.label3.caption := 'Ściąganie informacji o aktualizajci';
form2.ProgressBar1.Max := totalsize;
form2.ProgressBar1.Position := readed;
end;

end;

procedure TForm1.downDoneFile(Sender: TObject; FileName: String;
FileSize: Integer);
begin
form2.label3.caption := 'Odczytywanie informacji o aktualizacji.';
timer1.enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.enabled := false;
memo1.lines.LoadFromFile('C:WINDOWSTempupdate.cfg');
sxor := strtofloat(memo1.lines[0]);
if sxor sxox then begin
form2.close;
instaluj; end else begin showmessage('Wersja programu jaką aktualnie posiadasz jest najnowszą wersją.');
form1.close;
end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
r.free;
end;

end.

0

Ziomber. Tobie to tylko w łeb dać. Jak działa poprawnie to sformatować, dać krótki opis i do gotowców. A tu link.

0

ehehehe :)))))))) no to przynajmniej wiem do czego jest dział gotowce :)

0

Dzięki Ci wielkie!
Sam napisałeś :d :-) ?

0

Hmm...
Zauważyłem tam odwołania do innych form i unitów...no i brakuje mo komponentu THTTPGet, którego nigdzie PORZĄDNEGO dla D6 znależć nie mogę...
Czy mógłbyś mi przesłać na maila cały ten program z tym modułem UpDate? Tylko proszę - tym razem kompletny (to co nie będzie mi przydatne - usunę :-) . [mail masz w mojej sygnaturce] :d

0

A czy da radę zrobić coś takiego w c++ Builder??

Potrzebuję takiej aplikacji. Nie potrafię jej zrobić. Help me plis.

0

A czy da radę zrobić coś takiego w c++ Builder??

Potrzebuję takiej aplikacji. Nie potrafię jej zrobić. Help me plis.

Z góry dzięki. ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1