Fórum Detectar a versão mais atual entre dois aplicativos #335212
26/12/2006
0
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
Curtir tópico
+ 0Posts
27/12/2006
Daniel Martins
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:
Gostei + 0
28/12/2006
Zooropa
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!
Gostei + 0
28/12/2006
Massuda
É 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´.
Gostei + 0
28/12/2006
Daniel Martins
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...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)