![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Copiar actualizacion
Saludos:
Tengo una aplicacion que funciona en varias computadoras en red, y cada vez que hago una modificacion hay que llevarle la actualuzacion a su computadora, lo que pasa es que son alrededor de 30 computadoras y quedan muy retiradas unas de otras y lo que se me estaba ocurriendo es ver si pongo el exe en servidor de acceso comun cuando el programa se ejecute y verifique la fecha del archivo del sevidor y la compare con la fecha del archivo que se tiene actualmente y si es una version por llamarle asi es mas nueva que la que tengo que se copie solo, nomas que como el archivo esta en uso me marca un error, mi duda es como poder hacer esto si que se tenga que salir del programa? De antemano muchas gracias. ![]() |
#2
|
||||
|
||||
Es imposible.
Se pueden hacer mil trucos, pero desde luego tienes que salir del programa y luego entrar de nuevo. Opciones: Esto procede del archivo NKFILES.pas de la libreria NKLIBS
Puedes copiar el archivo del servidor a la carpeta donde está el programa, cambiandole el nombre, despues modificas ese .bat que se está creando al vuelo, de tal forma que una vez borrado el archivo exe, se renombre el que se ha bajado desde el servidor, y por último lo mandes a ejecutar. El resultado para el usuario final, es que pulsando un boton, tu programa se cierra y se vuelve a abrir (ya actualilzado). Saludos |
#3
|
||||
|
||||
![]() Se me ocurre algo.
Crear un exe que compare el archivo del cliente con el que esta en el servidor, si este ultimo es ma reciente que lo copie y despues ejecute, de lo contrario solo ejecutar Código:
if fecha(c:\cliente\..\archivo.exe) < fecha(\\servidor\..\archivo.exe) then begin delete c:\cliente\..\archivo.exe copy \\servidor\..archivo.exe to c:\cliente\..\ end; ejecuta archivo.exe
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#4
|
|||
|
|||
Cita:
El problema radica en el tiempo que tarda en cargarse inicialmente la aplicación.... ¿con una red a 100Mb?... segundos. En otra aplicación (pesa varios megas y se distribuye por internet) utilizo un conjunto de banderas: * Una indica la versión, la compara con la versión de la aplicación en la base de datos y decide si debe copiar al PC local algún archivo. Si copia algo se cierra la aplicación y vuelve a arrancarse, renombrando ficheros y actualizando las banderas. Esto te implica dos ejecutables: una lanzadera que hace todo lo que te he comentado antes y la aplicación en sí, que es llamada por la lanzadera cuando todo está correcto. Este sistema es bastante sencillo de implementar, nosotros lo tenemos para que se instale así mismo, para que compruebe diferentes versiones del programa lanzadera, del programa principal, de los archivos de ayuda,... Saludos,
__________________
Rafita. |
![]() |
|
|
![]() |
|