Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2011
Master23 Master23 is offline
Miembro
 
Registrado: feb 2010
Posts: 113
Poder: 15
Master23 Va por buen camino
¿Algoritmo para hacer actualizaciones automáticas por internet ?

Estoy realizando un software y quiero implementar actualizaciones automáticas,como muchos software que hay en el mercado por lo tanto tengo algunas cosas ya realizado , como la descarga de un nuevo exe , verificar si hay updates y luego realizar-las ,pero el problema viene, cómo cambio el viejo exe por el nuevo , espero puedan ayudarme. Si conocen alguna forma más eficiente con gusto les leeré muchas gracias de antemano, espero puedan ayudarme.
Responder Con Cita
  #2  
Antiguo 16-03-2011
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
el programa que verifica si hay actaulizaciones debe ser independiente al Exe o a cualquier otro programa que quieras cambiar...

cuando abras tu programa principal, llamas a la vez a tu programa "CheckForUpdate", el cual se encargará de cerrar el principal, reemplazar y volverlo a abrir, (si aplica)... y cerrarse cuado todo esto termine...

ya si quieres cambiar el propio..."CheckForUpdate", podrias inventarte swaping, entre la nueva y la vieja version... algo como:

Tu "CheckForUpdateActual" baja el "CheckForUpdateNew" en una carpeta temporal y lo ejecuta.

El "CheckForUpdateNew" cierra el "CheckForUpdateActual" y se autocopia en la ruta definitiva, para finalmente cerrarse. y si quieres abiri el nuevo programa... no se... son solo ideas...
Responder Con Cita
  #3  
Antiguo 16-03-2011
farute farute is offline
Miembro
 
Registrado: feb 2010
Posts: 84
Poder: 15
farute Va por buen camino
Cita:
Empezado por gatosoft Ver Mensaje
el programa que verifica si hay actaulizaciones debe ser independiente al Exe o a cualquier otro programa que quieras cambiar...
no tiene por qué,
No se si es muy correcto hacerlo pero lo que se puede hacer es:
- renombrar el ejecutable que esta corriendo o el que quieras actualizar (no hay problema en hacerlo)
RenameFile(ExtractFileName(application.ExeName),'viejo.exe');
- descargar el nuevo exe en el mismo directorio con el mismo nombre que tiene el ejecutable que está corriendo
- cerrar la aplicacion y volver a abrirla con el nuevo ejecutable
Application.terminate;
ShellExecute(Application.Handle,'Open',pChar(Application.ExeName),PChar('No'),nil,SW_NORMAL);

y en el oncreate eliminar si existe el fichero que habiamos renombrado para que no moleste para una próxima actualización,
if FileExists('viejo.exe') then DeleteFile('viejo.exe');
O quizás prefieras guardarlo en algún lado por si falla la actualización, eso ya lo que tu veas

Última edición por farute fecha: 16-03-2011 a las 09:18:04.
Responder Con Cita
  #4  
Antiguo 16-03-2011
Master23 Master23 is offline
Miembro
 
Registrado: feb 2010
Posts: 113
Poder: 15
Master23 Va por buen camino
Cita:
Empezado por farute Ver Mensaje
no tiene por qué,
No se si es muy correcto hacerlo pero lo que se puede hacer es:
- renombrar el ejecutable que esta corriendo o el que quieras actualizar (no hay problema en hacerlo)
RenameFile(ExtractFileName(application.ExeName),'viejo.exe');
- descargar el nuevo exe en el mismo directorio con el mismo nombre que tiene el ejecutable que está corriendo
- cerrar la aplicacion y volver a abrirla con el nuevo ejecutable
Application.terminate;
ShellExecute(Application.Handle,'Open',pChar(Application.ExeName),PChar('No'),nil,SW_NORMAL);

y en el oncreate eliminar si existe el fichero que habiamos renombrado para que no moleste para una próxima actualización,
if FileExists('viejo.exe') then DeleteFile('viejo.exe');
O quizás prefieras guardarlo en algún lado por si falla la actualización, eso ya lo que tu veas
Muchas gracias amigo , tu respuesta fue la más sencilla y lógica de aplicar, gracias de nuevo.
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
Ayuda para hacer un algoritmo de busqueda y comparacion JoAnCa Varios 7 23-12-2008 22:55:28
Sistema de actualizaciones automaticas bustio Varios 1 30-06-2008 17:24:50
Actualizaciones automaticas 2007 -brackout- Varios 8 02-03-2008 19:15:26
Actualizaciones automáticas david.rguez Internet 1 27-10-2007 00:27:58
Como hacer un Hook Para detectar internet carlosmoralesm Internet 1 03-04-2004 10:40:34


La franja horaria es GMT +2. Ahora son las 11:32:43.


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