¿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.
|
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... |
Cita:
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 |
Cita:
|
La franja horaria es GMT +2. Ahora son las 16:16:20. |
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