Fórum Atualização do executável nos clientes #256218
27/10/2004
0
bom dia pessoal,
gostaria da ajuda de vcs no seguinte problema que estou enfrentando.
tenho um sistema desenvolvido que possui um instalador feito em inno setup.
esse sistema é instalado uma primeira vez no modo Servidor em um dos micros, e o restante dos micros em modo Cliente (que irão acessar o Servidor já instalado).
o meu setup funciona como atualizador também, como eu utilizo o Version Info do delphi para controlar as versões ele só irá sobrepor o executável caso a versão seja mais recente.
para o processo de atualização eu gostaria de baixar o novo executavel uma só vez no Servidor , sendo que os clientes fossem atualizados automaticamente. como fazer isso ?
abraço
Diogo.
gostaria da ajuda de vcs no seguinte problema que estou enfrentando.
tenho um sistema desenvolvido que possui um instalador feito em inno setup.
esse sistema é instalado uma primeira vez no modo Servidor em um dos micros, e o restante dos micros em modo Cliente (que irão acessar o Servidor já instalado).
o meu setup funciona como atualizador também, como eu utilizo o Version Info do delphi para controlar as versões ele só irá sobrepor o executável caso a versão seja mais recente.
para o processo de atualização eu gostaria de baixar o novo executavel uma só vez no Servidor , sendo que os clientes fossem atualizados automaticamente. como fazer isso ?
abraço
Diogo.
Diogoalles
Curtir tópico
+ 0
Responder
Posts
27/10/2004
Jc_analista
Tente isso:
Crie outro executavel com o nome de atualizador e coloque na mesma pasta do seu sistema.
Código do atualizador:
Utilizo nos meus sistemas e sempre funciona.
No create do form coloque isso: // atualizando versão so sistema automaticamente DtLocal := FileDateToDateTime(FileAge(´c:\crm.exe´)); DtRede := FileDateToDateTime(FileAge(´\\servidor\crm.exe´)); If DtLocal < DtRede then begin Try WinExec(PCHAR(modulodados.caminho+´\Atualizador.exe´), SW_SHOWNORMAL); Application.Terminate; Except Mensagem := ´Não foi possível efetuar a atualização disponível.! ´ + #13 + 13 + ´Entre em contato com o Administrador do Sistema.´; Application.MessageBox(PChar(Mensagem), ´Informação´, MB_OK+MB_ICONINFORMATION); End; End; //Fim de procedimentos de Atualização
Crie outro executavel com o nome de atualizador e coloque na mesma pasta do seu sistema.
Código do atualizador:
VsLocal := ´c:\crm.exe´; VsRede := ´\\servidor\crm.exe´; Try Mensagem := ´Foi detectada uma nova versão do CRM.´ +#13+ ´O sistema será atualizado. ´ + 13 + 13; Application.MessageBox(PChar(Mensagem), ´Pctel Crm´, MB_OK+MB_ICONEXCLAMATION); C := 1; While not (CopyFile(Pchar(VsRede),Pchar(VsLocal), False)) do Inc(C); //| Após copiar a versao local é executada. WinExec(PChar(VsLocal), SW_SHOWNORMAL); Except //| É exibida uma mensagem de erro caso algo saia errado. Mensagem := ´Erro Atualizar o Sistema! ´ + 13 + 13; Application.MessageBox(PChar(Mensagem), ´Erro´, MB_OK+MB_ICONERROR); Abort; End; //| A aplicação é finalizada Application.Terminate;
Utilizo nos meus sistemas e sempre funciona.
Responder
Gostei + 0
05/11/2004
Diogoalles
jc analista,
obrigado por sua ajuda... achei muito interessane.
fiquei com algumas duvidas como:
-o micro servidor vai tem que estar com a pasta onde tá o executável compartilhada?
-no caso do executável do atualizador, onde coloco a rotina que vc passou?
obrigado
Diogo
obrigado por sua ajuda... achei muito interessane.
fiquei com algumas duvidas como:
-o micro servidor vai tem que estar com a pasta onde tá o executável compartilhada?
-no caso do executável do atualizador, onde coloco a rotina que vc passou?
obrigado
Diogo
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)