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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.109
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Aquí tienes un truco que te devolverá la versión de un ejecutable... no sé si podrías adaptarlo a tus necesidades.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 09-06-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hace no mucho habíamos platicado al respecto pero desafortunadamente ese hilo se perdió.

Sin embargo, no tienes qué averiguar la versión del ejecutable en el servidor, simplemente "escribe" ésta en un archivo de texto. Tu aplicación baja ese archivo y compara la versión ahí escrita con la versión del ejecutable en el cliente (para lo cual te sirve el truco que menciona dec). En ese hilo perdido habíamos comentado la posibilidad de guardar no la versión sino el md5 del archivo ejecutable y compararlo on el md5 del ejecutable en el cliente: si difieren se baja la versión del servidor. Si no mal recuerdo, seoane había incluso hecho un prototipo de actualizador. Quizá aún lo tenga.

// Saludos
Responder Con Cita
  #3  
Antiguo 09-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Roman no solo tengo el programa, ademas lo tengo funcionando a pleno rendimiento en un par de ordenadores y va de maravilla. Los usuarios ni lo han notado, no lo tomemos por donde no es , si recordais el "hilo perdido" mi objetivo era poder actualizar de forma que el usuario no se enterara, que fuera un proceso transparente para el, y parece que lo consegui.

La unica pega es que es bastante dificil de configurar, se configura por medio de un fichero de texto, y no hice ninguna utilidad para crearlo asi que toca hacerlo con el bloc de notas

Bueno, recordemos el esqueleto de la criatura:

Código:
Paso 1: El programa descarga un fichero de texto con los comandos y hash md5
Paso 2: Ejecuta los comandos y comprueba los md5 de los ficheros
Paso 3: Si un md5 no coincide baja el archivo actualizado 
Paso 4: Comprueba el md5 del archivo bajado
Paso 5: Intenta sustituir el archivo viejo por el nuevo
Paso 6: Si no lo consigue, lo retrasa hasta el proximo reinicio del equipo (No hay prisa)
Paso 7: Esperar (15 minutos o lo que se programe)
Paso 8: Vuelve al Paso 1
Los comando de los que hablo son uno que permite cerrar el programa y otro que cambia el tiempo de espera. La razon de retrasar la actualizacion hasta el siguiente reinicio en vez de realizar una espera activa o forzar el cierre del programa es porque se intenta que el proceso estorbe lo menos posible al usuario, que el programa se actualice ahora o al dia siguiente al encender el equipo no importa demasiado en mi caso.

Ahora vamos a como se instala. Sencillo, guardalo en la misma carpeta que tu aplicacion y ejecutalo cuando creas oportuno, al iniciar windows, al iniciar tu programa, etc. Del lado del servidor, necesitaras un servidor web o ftp donde alojaras los archivos nuevos y el archivo de comandos.

Bien el programa tiene un archivo .ini en el se debe colocar la url completa del archivo de comandos, puede contener mas de una direccion cada una en una linea. En cuanto al archivo de comandos tiene la siguiente estructura:

Código:
#{A4EB244D-84F2-4F73-A5BD-F88BE805CB5E}

$AppPath\Programa.exe;http://servidor.com/Programa.exe;4CB70FB78F1254EFC2ADF2AA1042289D
$AppPath\Documento.doc;http://servcidor.com/Documento.doc;0DF57ED8F158F55AE6F6A368169C7D23
La primera linea es una firma, debe colocarse tal cual en la primera linea para que el programa procese el resto de lineas. En cuanto a cada linea se compone de la ruta local del archivo, la url del archivo actualizado y el md5 del archivo actualizado.

Bueno, creo que ya llego de explicion por ahora. Aqui te dejo un zip con el codigo del programa, un archivo de configuracion de ejemplo y un programa para generar los md5.

Es tarde y puede que mi explicacion no este muy clara, ademas el codigo va sin comentarios una FEA costumbre que tengo. Pero aui estoy para explicar cualquier duda que tengas sobre el o sobre algunas de las funciones que utilizo.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip agent.zip (10,0 KB, 341 visitas)

Última edición por seoane fecha: 09-06-2006 a las 02:49:37.
Responder Con Cita
Respuesta



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
Actualizar programa turminator Internet 1 15-05-2006 01:49:34
Actualizar los puestos de un programa instalado en el servidor VRO Conexión con bases de datos 3 19-07-2005 20:53:16
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36
Ejecutar un programa DENTRO de otro programa seduerey Varios 8 12-11-2003 13:56:20
actualizar mi programa nicocer SQL 1 27-10-2003 12:16:47


La franja horaria es GMT +2. Ahora son las 20:17:06.


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