Acredito que seria melhor se fosse: if FileAge(z:\bla.exe'') <> FileAge('c:\bla.exe') Then // atualiza porque é "DIFERENTE!" Pois vc pode precisar algum dia fazer um DOWNGRADE ao invez de um UPGRADE....
Luiz Escobar - Analista/Desenvolvedor: WEB - HTML/JavaScript/PHP/MySQL WINDOWS - Delphi/ASSEMBLY/MySQL/xBase SERVIDORES - CNA IntraNetWare4.11, LINUX-(RedHat9/Suse10.2), Windows 2K/XP From: Darkzad Sent: Tuesday, January 08, 2008 12:29 PM To: delphi-br@yahoogrupos.com.br Subject: Re: [delphi-br] Mensagem para o sistema Sua idéia foi muito simples e boa a do if FileAge('z:\sistema.exe') > FileAge('c:\sistema\sistema.exe') then // mensagem ao usuário com um form Modal avisando para atualizar o vai me ajudar. Valeu sistema... ----- Original Message ----- From: Marcos Douglas To: delphi-br@yahoogrupos.com.br Sent: Tuesday, January 08, 2008 10:20 AM Subject: Re: [delphi-br] Mensagem para o sistema Adriano, Uma forma mais fácil de fazer isso é com um arquivo BAT: @echo off xcopy z:\sistema.exe c:\sistema /d /Y start c:\sistema\sistema.exe exit É só criar um atalho para o usuário usar o BAT e não clicar diretamente no EXE. Darkzad, Para enviar uma mensagem ao usuário, é só você comparar os arquivos (do servidor com o da máquina local) assim: if FileAge('z:\sistema.exe') > FileAge('c:\sistema\sistema.exe') then // mensagem ao usuário com um form Modal avisando para atualizar o sistema... PS: Considerei o driver Z: como sendo o servidor mapeado. Abraços Marcos Douglas On 1/8/08, Adriano Santos (Yahoo) <[EMAIL PROTECTED]> wrote: > > Darkzad, > > Posso dar outra sugestão? > Cara, criei um método de atualização que ficou infalível aqui. Olha só: > Criei uma tabela no banco chamada ATUALIZACOES conforme abaixo: > > CREATE TABLE ATUALIZACOES ( > ID INTEGER NOT NULL, > NOME VARCHAR(30), > VERSAO INTEGER, > ARQUIVO BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL > ); > > E os registros na base ficam assim: > > FROTA.EXE | 6.150 | ???? > OPERACAO.EXE | 6.149 | ???? > COBRANCA.EXE | 6.127 | ???? > > Quando o sistema abre ele faz uma select no banco usando o nome do > módulo (Operacao.exe, Frota.exe, Cobranca.exe). Nada como um > ExtractFileName não resolva. Feito isso verifico se a versão do sistema, > prevista em uma variável global, é inferior ou superior a que está no > banco. > > Se for inferior, faço um "download" do arquivo atualizado puxando > diretamente do banco de dados. Use: > QueryCAMPO_ARQUIVO.SaveToFile(ExtractFilePath(Application.ExeName)); > > Se o módulo (na variável global) for superior, então faço o upload para > o banco usando: > QueryCAMPO_ARQUIVO.LoadFromFile(ExtractFilePath(Application.ExeName)); > > Desta forma, basta instalar o executável novo em uma estação e nesta > mesma estação abrir ao menos uma vez o executável para que ele sozinho > faça a atualização do banco. > As demais máquinas serão automaticamente atualizadas assim que reabrirem > o sistema. > > Na ClubeDelphi 84 saiu um artigo sobre isso, foi de lá que peguei a > idéia. Porém a idéia do autor foi fazer um programinha a parte para > atualizar o banco. No meu caso já enfiei isso direto no executável de > produção. > > Ah e tem mais: todos os meus clientes usam uma dll. Cada cliente tem a > sua. Esse esquema tb previ a atualização automática das dlls. > > Xuxu beleza > > Adriano Santos > ---------------------------------------------------------- > Editor Técnico Revista ClubeDelphi > www.delphitodelphi.blogspot.com > www.devmedia.com.br > www.devmedia.com.br/clubedelphi/pagina.asp > > > > > Darkzad respondeu: > > > > Bom dia a Todos > > > > Pessoal, estou desenvolvendo um sistema na empresa e sempre ocorre > > atualizações a fazer e sempre tenho que pedir os usuários para sair do > > sistema. > > > > Gostaria de fazer algo no sistema que enviasse uma mensagem pedindo ao > > usuário que saia do sistema para atualização. > > > > Teria algo possível de resolver isso? > > > > Desde já agradeço > > > > Darkzad > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > ---------------------------------------------------------- > > > > No virus found in this incoming message. > > Checked by AVG Free Edition. > > Version: 7.5.516 / Virus Database: 269.17.13/1213 - Release Date: > 07/01/2008 09:14 > > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > Links do Yahoo! Grupos > > > [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]