Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2013
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Problema con Servicio para copiar programas

Hola tengo un problema, hice un servicio que actualiza los programas en el servidor de 4 a 5 de la mañana, el servicio funciona bien, compara si las versiones de los prg son distintas actualiza, el tema es que si un programa esta en uso o no lo puede copiar por algún problema se frena el servicio y no continua, cuando detengo el servicio termina de actualizar todo. Si pruebo el programa como un form comun aunque exista algun problema entre los prg a actualizar copia hasta el final. No se como solucionar esto.

Les dejo las funciones y como hice el prg. Gracias!!!!

El Servicio que copia el programa con un timer cada 5 minutos en ese lapso de horas :

Cita:
Procedure TServiceActua.Timer1Timer(Sender: TObject);

Var
V : TVSFixedFileInfo;
archiant, archipos : string;

begin

hora := copy(datetimetostr(now()),11,6);

if copy(datetimetostr(now()),13,1) = ':' then
hora := '0'+ copy(datetimetostr(now()),12,4);





hora1 := '04:57';

if ((strtotime(hora) > strtotime('03:57'))
and (strtotime(hora) < strtotime(hora1)) ) then
begin


V := GetFileVersion('\\xxx\Venta1\xxx\Pruebax.exe');

archiant:= Format('%d.%d',
[HiWord(V.dwFileVersionMS),
LoWord(V.dwFileVersionMS)]) ;



V := GetFileVersion('\\xxx\Venta1\Pruebax.exe');

archipos:= Format('%d.%d',
[HiWord(V.dwFileVersionMS),
LoWord(V.dwFileVersionMS)]) ;


if archiant <> archipos then
begin
copiatodo('\\xxx\Venta1\xxx\Pruebax.exe','\\xxx\Venta1\Pruebax.exe');
end;

archiant := '';
archipos := '';


V := GetFileVersion('\\xxx\Venta1\xxx\Prueba2.exe');

archiant:= Format('%d.%d',
[HiWord(V.dwFileVersionMS),
LoWord(V.dwFileVersionMS)]) ;



V := GetFileVersion('\\xxx\Venta1\Prueba2.exe');

archipos:= Format('%d.%d',
[HiWord(V.dwFileVersionMS),
LoWord(V.dwFileVersionMS)]) ;


if archiant <> archipos then
begin
copiatodo('\\xxx\Venta1\xxx\Prueba2.exe','\\xxx\Venta1\Prueba2.exe');
end;

end;


Funcion que Copia



Cita:
function CopiaTodo(Origen,Destino : String) : LongInt;
var
F : TShFileOpStruct;
sOrigen, sDestino : String;
begin
Result := 0;
sOrigen := Origen + #0;
sDestino := Destino + #0;

with F do
begin
Wnd := 0 ;
// Application.Handle;
wFunc := FO_COPY;
pFrom := @sOrigen[1];
pTo := @sDestino[1];
fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION
end;

Result := SHFileOperation(F);
end;
Cita:
Function GetFileVersion(AFileName : TFileName) : TVSFixedFileInfo;
Var
I : Cardinal;
P : Pointer;
Q : PChar;
Begin
I := GetFileVersionInfoSize(PChar(AFileName), I);
If (I > 0) Then
Begin
GetMem(P, I);
Try
GetFileVersionInfo(PChar(AFileName), 0, I, P);
VerQueryValue(P, '\', Pointer(Q), I);
Result := PVSFixedFileInfo(Q)^;
Finally
FreeMem(P);
End;
End
Else
FillChar(Result, SizeOf(TVSFixedFileInfo), #0);
End;

Última edición por shoulder fecha: 21-03-2013 a las 14:55:55. Razón: Error titulo
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
copiar archivo a otra maquina de la red desde un servicio hach API de Windows 1 02-10-2018 11:46:32
4 programas para aprender malwkaf Varios 5 19-12-2011 18:40:31
Tu sueño hecho realidad: las librerías para desarrollar programas para MSN Messenger Black_Ocean API de Windows 2 12-02-2009 07:46:22
Programas para Mac RoyTan Debates 5 22-01-2008 23:32:36
Programas para PALM en Delphi Delphius Varios 2 30-09-2006 08:26:15


La franja horaria es GMT +2. Ahora son las 04:27:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi