Detect and download a new version (Views: 709)
Problem/Question/Abstract: 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} |