Mega Code Archive

 
Categories / Delphi / Hardware
 

How To detect and download a new version

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}