Fórum Detectar a versão mais atual entre dois aplicativos #335212

26/12/2006

0

Saudações,
gostaria de saber se é possível fazer isso: tenho dois executáveis (ex: um em C:\Meus Documentos e outro em C:\Projeto, os caminhos dos dois estão salvos num arquivo Ini). Utilizando outro executável (o terceiro, este em C:\) irei ler o arquivo Ini e assim procurar saber qual dos dois aplicativos é o mais atual e assim abrir este aplicativo. Resumindo, gostaria de saber como faço pra que um aplicativo através de um Ini verifique qual dos outros dois é o mais atual e o abra. Já sei como criar e salvar um arquivo Ini, este já está configurado. Agradeço a ajuda.


Zooropa

Zooropa

Responder

Posts

27/12/2006

Daniel Martins

olá amigo.

voce pode comparar as datas dos arquivos para verificar qual é o mais atual voce pode usar esse código:
Unit SysUtils  var

  DataArq: TDateFile;
begin
  DataArq:= FileDateToDateTime(FileAge(´NomeDoArquivo´));
end;  

usei esse tipo de coisa em um cliente para atualizar a aplicação na rede, com isso só preciso colar o executável da aplicação em um computador, qdo o programa é aberto nas outras máquinas esse código faz a comparação e atualiza.

caso queira copiar o executavel atual voce pode utilizar este código:
procedure TForm1.Button2Click(Sender: TObject);
var
    SR: TSearchRec;
    I: integer;
    Origem, Destino: string;
begin
   I := FindFirst(´c:\Origem\*.*´, faAnyFile, SR);
   while I = 0 do
       begin
       if (SR.Attr and faDirectory) <> faDirectory then
          begin
          Origem := ´c:\Origem\´ + SR.Name;
          Destino := ´c:\Destino\´ + SR.Name;
          if not CopyFile(PChar(Origem), PChar(Destino), true) then
             ShowMessage(´Erro ao copiar ´ + Origem + ´ para ´ + Destino);
       end;
       I := FindNext(SR);
   end;
end; 

Só fazer algumas adaptações... :D

espero ter ajudado! :lol:


Responder

Gostei + 0

28/12/2006

Zooropa

Saudações Daniel,
estou realizando o teste do seu código mas desde já quero agradecer a ajuda. Acho que dessa forma (com a data) já ajudaria. Assim que terminar o teste respondo. Valews!


Responder

Gostei + 0

28/12/2006

Massuda

...dessa forma (com a data) já ajudaria.
Usar a data do arquivo que é mantida pelo (sistema de arquivos do) Windows não funciona. No caso do arquivo ser baixado da web ou salvo a partir de um email, a data será a data que baixou o arquivo.

É melhor usar as informações de versão do executável que você pode gerar automaticamente através de [b:896446d292]Project|Options[/b:896446d292], aba [b:896446d292]Version Info[/b:896446d292].

Para ver exemplos de como ler essas informações de versão, :arrow: [url=http://forum.clubedelphi.net/search.php]pesquise[/url] o fórum por ´GetFileVersionInfo´.


Responder

Gostei + 0

28/12/2006

Daniel Martins

para baixar o executável da Web eu utilizei outros métodos, mas esse foi para atualizar na rede e funcionou.
Exemplo o executavel da minha máquina tem a data 27/12/2006 e o executavel do servidor tem a data 28/12/2006, qual é o mais atual??

claro que no servidor existe uma pasta específica para colocar o arquivo .exe, ele não é executado nesta pasta é apenas para ser copiado.

Talvez pela versão seja melhor, mas o exemplo que segui comparei a data e a hora do arquivo, se eu atualizar o arquivo mais de 1 vez por dia ele atualiza na rede sem problemas...


Responder

Gostei + 0

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

Aceitar