Detectar a versão mais atual entre dois aplicativos
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.
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
Curtidas 0
Respostas
Daniel Martins
26/12/2006
olá amigo.
voce pode comparar as datas dos arquivos para verificar qual é o mais atual voce pode usar esse código:
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:
Só fazer algumas adaptações... :D
espero ter ajudado! :lol:
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
Zooropa
26/12/2006
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!
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
Massuda
26/12/2006
...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´.
GOSTEI 0
Daniel Martins
26/12/2006
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...
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