Title: How To detect and download a new version
Question: How Can I detect and download a new version of my applications.
Answer:
{Well first you need a home page or a server and then you must use the following source code}
uses URLMON,INIFILES;
{This will download the necesary files}
function DownloadFile(Source, Dest: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(source), PChar(Dest), 0, nil) = 0;
except
Result := False;
end;
end;
function GetPathPath : string;
begin
Result:=ExtractFilePath(Paramstr(0));//This get's the path
end;
{You need to set up on your server a ini file called update.ini containing the following lines}
[version]
wsc=6
then apply this source code:
var
apath:string;
new:Integer;
begin
apath:=GetPathPath;
Gauge1.Progress:=0;
StatusBar1.SimplePanel:=True;
StatusBar1.SimpleText:='Connecting to http://tsoft.home.ro';
Gauge1.Progress:=20;
if DownloadFile ('http://www.tsoft.home.ro/update.ini',PChar(apath)+'/update.ini') then
begin
Gauge1.Progress:=50;
StatusBAr1.SimplePanel:=True;
StatusBar1.SimpleText:='Checking for newer versions...';
vernfo:=TiniFile.Create(GetPathPath+'/update.ini');
new:=vernfo.ReadInteger('version','wsc',6);
vernfo.Free;
if (old=new) then
begin
StatusBar1.SimplePanel:=True;
StatusBar1.SimpleText:='No new version detected';
Gauge1.Progress:=100;
end
else
if DownloadFile('http://www.tsoft.home.ro/winnew.exe',PChar(apath)+'/winsafe.exe') then
begin
ShowMessage('Update succeseful');
Gauge1.Progress:=100;
winsc:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
winsc.WriteInteger('wsc','vernfo',new);
winsc.Free;
end
else MessageDlg('A new version has appeard but it requires a second istall!',mtInformation,[mbOk],0);
end
else
begin
StatusBAr1.SimplePanel:=True;
StatusBar1.SimpleText:='Failed probably a internet problem';
Gauge1.Progress:=0;
end;
end;
{You will figure it out coz you can't copy the code like this you must make a few adjustments but I provided the ideea}