Solved

how to update exe applicatio from internet ?

Posted on 2016-11-16
6
86 Views
Last Modified: 2016-11-16
i am using this procedure to update my application from internet  , But i got problem i already can download the new exe ,, but i wanted to auto replace the old application with the new updated one  i cannot do that while the exe application is running !

the approach that i am trying to achieve is when i run my application and download the update auto restart the application with the new update one  , i don't want to duplicated Files like rename and leave the old version etc  

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;

Open in new window

0
Comment
Question by:dolphin King
  • 3
  • 2
6 Comments
 
LVL 35

Expert Comment

by:Kimputer
ID: 41889562
That's why all major software releases (think Google Chrome, Adobe Reader etc) use a separate update modules. It's just not possible to update yourself.
0
 

Author Comment

by:dolphin King
ID: 41889675
so you suggest to create a luncher to the orginal exe that need to be updated ?
0
 
LVL 35

Accepted Solution

by:
Kimputer earned 500 total points
ID: 41889682
I suggest you start the update module (separate .exe) to update the main program (have it close the main app if it's still open).
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:dolphin King
ID: 41889847
i will take your suggestion as accepted answer how ever i was thinking about something else ...
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 41890289
Letting an exe update itself doesnt work.
There is always a second app required which can need elevated privs.

You can lift someone except yourself
0
 

Author Comment

by:dolphin King
ID: 41890502
yes i was thinking flat . i did secondary app
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A short article about a problem I had getting the GPS LocationListener working.
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question