Ver Mensaje Individual
  #6  
Antiguo 18-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No me considero quién para aconsejar a nadie sobre nada, sobre todo porque la gente se guarda muy mucho y muy bien de no seguir los consejos de nadie, y, ¿quién soy yo? Nadie. Pues por eso lo digo. Lo que puedo añadir es lo que se me ocurre a bote pronto, que te sea de utilidad o no dependerá de tantas cosas que no me atrevo a imaginarlas. Ahí voy.

Se me ocurre que no compruebes la existencia de una nueva versión de tu programa sino hasta haberse este ejecutado y presentado al usuario. Cuando el usuario inicia tu programa quiere ver tu programa, justamente, y no saber antes de nada si existe una versión nueva.

Es una opinión, claro está, y que acaso no sepa expresar convenientemente. Entono un mea culpa, se suele decir, en estos casos. Yo daría al usuario la opción de comprobar la existencias de nuevas versiones del programa al iniciarse este (pero al iniciarse aquí significa una vez el programa, la interfaz del programa, están disponibles para el usuario). Y realizar dicha comprobación en segundo plano, sin que el usuario se percate de ello, avisándole únicamente si de veras existe una versión nueva del programa.

Es en ese punto, cuando el usuario conozca la existencia de una versión nueva del programa, y quiera interesarse por esta, cuando tú puedes proceder a la descarga del nuevo sistema, se componga este de los archivos que se compongan, realizando la tarea como mejor te parezca o como, en definitiva, sea menester.

El uso de la función "ShellExecute" para esto lo veo de la siguiente manera, únicamente: se comprueba que existe una versión nueva del programa; se le pregunta al usuario si quiere descargar esta nueva versión; en caso afirmativo se utiliza la función "ShellExecute" para que el sistema operativo se encarge por los cauces adecuados de descargar de Internet el archivo que le indiquemos.

¿Otras formas de actualizar el programa que no sea usando la función "ShellExecute", que no me parece la más conveniente? Pues haberlas las hay. Hasta componentes dedicados a la tarea de actualizar aplicaciones existen para Delphi. La Jedi Library incluye todo un "paquete" de componentes dedicados a esta tarea. También podrías hacerlo tú mismo, ya digo, todo dependerá de qué se tenga que llevar a cabo: no todas las aplicaciones son iguales, esto es obvio, así que no todas las "actualizaciones" serán las mismas ni seguirán los mismos pasos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita