Fórum Como criar uma atualizacao via internet dentro do programa #192320

02/11/2003

0

Seria algo como um LiveUpdate do Norton Anti-virus (nem tanto!) ... mas que iria até um endereço especifico na internet, verificasse se ha uma nova versao do programa e caso sim, perguntasse ao usuario se ele queria fazer a atualização.

Eu nao procurei muito na internet sobre isso, caso seja um assunto ja discutido antes nao me xingue... somente me envie o link... obrigado!


Doctor-x

Doctor-x

Responder

Posts

02/11/2003

Cebikyn

Funciona +- assim:
no site, vc coloca um INI contendo a versão mais recente do programa, faça o programa pegar esse INI usando URLDownloadToFile (pesquise aqui no forum pelo nome da função que vc acha), depois o programa compara com a versão instalada no sistema, se a versão instalada for menor, então ele pergunta pro usuário se deseja atualizar, se o usuário aceitar, o programa baixa o arquivo de atualização (novamente com URLDownloadToFile) e executa o arquivo (ShellExecute ou WinExec) e apaga o arquivo INI (DeleteFile).


Responder

Gostei + 0

02/11/2003

Edilcimar

se não quiser utilizar um arquivo ini utilize a função fileage(arquivo), a qual retorna a data de um arquivo (no caso o executável) e compare a do cliente com a tua


Responder

Gostei + 0

13/11/2003

Okama

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, urlmon, StdCtrls,IniFiles;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

const
  VERSAO_APP = 1;
implementation

{$R *.dfm}

{#}
FUNCTION ABREINI(ArquivoINI,Chave,Item:string):String;
var Arquivo:TIniFile;
    Volta:String;
Begin
Arquivo := TIniFile.Create(ArquivoINI);
Volta:=Arquivo.ReadString(Chave,Item,´´);

Arquivo.Free;

Result:= Volta;
end;


{}
Function DOWNLOAD( ORIGEM, DESTINO: String):Boolean;
begin
try
    Result := UrlDownloadToFile(nil, PChar(ORIGEM), PChar(DESTINO), 0, nil) = 0;
except
    Result := False;
end;
end;


{#}
procedure TForm1.Button1Click(Sender: TObject);
Var RETORNO: Boolean;
    Versao: Integer;
    URL : String;
    Data: TDate;
begin

//Faz o Download do arquivo de log
RETORNO := DOWNLOAD(´http://www.folhabrasil.com.br/infolha/update.log´,
            ´c:\temp\update.log´);

if RETORNO then begin
   Versao:= StrToInt( ABREINI(´c:\temp\update.log´,´app´,´versao´) );
   Data  := StrToDate( ABREINI(´c:\temp\update.log´,´app´,´data´) );
   URL   := ABREINI(´c:\temp\update.log´,´app´,´url´);

   //compara a versao, data ou qualquer outra coisa//
   if Versao > VERSAO_APP then  begin
      Application.MessageBox(Pchar(´Está disponível uma nova versão para seu aplicativo.´+
          #13+10 + ´Versao: ´+ IntToStr(Versao)+
          13+10 + ´Data: ´+ FormatDateTime(´dd/mm/yyyy´,Data) +
          13+10 + ´Deseja Atualizar?´),
          ´Update´,mb_yesno+mb_iconQuestion);

      if DOWNLOAD(url,´c:\temp\aplicativo.exe´) then
         Showmessage(´Download Completado!´);
   end else
       Showmessage(´Nenhuma atualização encontrada!´);
end;

end;

end.



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar