Internet - verifica na internet uma possivel nova versao do programa sendo rodado e avisa

Top  Previous  Next

// esta rotina verifica na internet uma possivel nova versao do programa sendo rodado e avisa

 

uses 

  {...,}IniFiles, UrlMon, 

 

    type 

  TForm1 = class(TForm) 

    {...} 

  private 

    winsc: TiniFile; 

    old: Integer; 

    vernfo: TIniFile; 

  end

   

implementation 

 

{$R *.dfm} 

 

function DownloadFile(Source, Dest: string): Boolean; 

  { Function for Downloading the file found on the net } 

begin 

  try 

    Result := UrlDownloadToFile(nil, PChar(Source), PChar(Dest), 0, nil) = 0

  except 

    Result := False; 

  end

end

 

function GetPathPath: string; 

  { Retrive app path } 

begin 

  Result := ExtractFilePath(Application.ExeName); 

end

 

procedure TForm1.DownLoadNewVersion1Click(Sender: TObject); 

var 

  apath: string; 

  new: Integer; 

begin 

  // This is the exact code from my application 

  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'7); 

    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/winsafe.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 install'

        mtInformation, [mbOK], 0); 

  end 

  else 

  begin 

    StatusBar1.SimplePanel := True; 

    StatusBar1.SimpleText  := 'Failed to connect probably a internet problem'

    Gauge1.Progress        := 0

  end

end

 

procedure TForm1.FormCreate(Sender: TObject); 

begin 

  //App version 

  winsc := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')); 

  try 

    old := winsc.ReadInteger('wsc''vernfo'1); 

  finally 

    winsc.Free; 

  end

end

 

end

 

{The concept is very simple u download a ini file from your website that contains 

the version you compare it with the one from your computer and it downloads the 

file if the versions are Not equal if you find any froblems write me.}