Ver Mensaje Individual
  #2  
Antiguo 17-12-2007
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 504
Reputación: 22
lgarcia Va por buen camino
Actualizar programa

Hola:

Con relacion a la actualizacion de un programa lo que hago es un pequeno ejecutable que realiza la comparacion de la fecha de modificacion tanto del programa que esta en la maquina de los usuarios con la del servidor o PC donde esta la ultima version y si es mas nueva la remplazo, eso si el usuario tiene que tener privilegios para poder sobrescribir porque si el programa esta en Archivos de programa y es un usuario limitado no podra hacerlo.
y ese ejecutable al final llama al verdadero programa.

aqui te envio un codigo que puede te sirva:

Código:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
var
  fecha1, fecha2: Double;
function GetFileDate(TheFileName: string): Double;
var
 FHandle: integer;
begin
 FHandle := FileOpen(TheFileName, 0);
 try
   Result := Int(FileDateToDateTime(FileGetDate(FHandle)));
 finally
   FileClose(FHandle);
 end;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  ShortDateFormat:= 'MM/dd/yyyy';
  fecha1:= GetFileDate('C:\Archivos de programa\Programa\pepe.exe');
  WinExec(PChar('net use G: \\Servidor password/user:administrador'),SW_HIDE);
  fecha2:= GetFileDate('G:\\sadvalcajero.exe');
  if fecha2 > fecha1 then
  CopyFile(Pchar('\\192.168.10.16\temp\pepe.exe'), Pchar('C:\Archivos de programa\Programa\pepe.exe'), False);
  WinExec(PChar('net use G: /delete'),SW_HIDE);
  Close;
  //
  WinExec(PChar('C:\Archivos de programa\Programa\pepe.exe'),SW_SHOWNORMAL);
end;
end.
Saludos

Luis Garcia
Responder Con Cita