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 12-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Actualizacion automatica de un EXE.

Hola a todos
En ciertas ocasiones tengo que hacer modificaciones en el programa.
Una vez hechas lo paso a cada ordenador y a funcionar.
El asunto es que el programa no tiene que estar en marcha ya que no me autoriza ha hacer el cambio si esta corriendo este, entonces necesito indicar que salgan del programa y una vez hecho el cambio que entre otra vez.
Pregunta:
Hay alguna manera de hacer que el programa revise si hay alguna actualización o cambio y se haga automáticamente?.
Espero hacerme entender.
Gracias.
Saludos
Responder Con Cita
  #2  
Antiguo 12-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Gracias al Grupo 4F.
Parte de la respuesta:
http://www.clubdelphi.com/foros/showthread.php?t=11972
Otra parte:
http://www.clubdelphi.com/foros/showthread.php?t=54236

Si hay alguna otra sugerencia la aceptare con gusto.
Saludos
Responder Con Cita
  #3  
Antiguo 12-04-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Lo que yo hago es algo parecido a Firefox, detecto que hay una actualizacion de mis programas (mediante un webservice) y acto seguido le indico al usuario que existe una actualizacion y si quiere bajarla. En caso de ser afirmativa la respuesta, inicio el download de un .msi (antes un exe de installshield) que contiene una version mas reciente de mi software. Cuando esta descarga termina le indico al usuario que hay que cerrar el programa para que cuando lo corra la proxima vez lleve a cabo la actualizacion.
Mi programa se cierra y la siguiente vez que arranca localiza una actualizacion y la corre, despues de darle "ejecutar" al msi cierro nuevamente mi programa para que el instalador pueda continuar su tarea. Al final de instalacion/Actualizacion el indico ahora al instalador que corra mi programa y asi el usuario ve ya actualizado su software. Un poco enreversado pero me funciona y no vi una manera de hacer que se instale o actualice con el programa corriendo.
Espero te sirva.
Responder Con Cita
  #4  
Antiguo 12-04-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 18
Black_Ocean Va por buen camino
Hola [Caral],

Mira, lo que podrías hacer es que utilizar un sistema de descarga de parches en línea para actualizar versiones de ej: 1.0 (version base) a versiones 1.0.x.x (mínimos arreglos y no grandes avances), podrías realizar parches de ejecutables muy facilmente con la herramienta dUP2 . Lo que hace este programa es comparar el ejecutable instalado (original) con el nuevo ejecutable y reemplaza intrucciones en assembler del ejecutable con las diferencias con tan sólo un clic, en vez de estar dandote el trabajo de empaquetar el ejecutable y crear el instalador cada vez que requiera de una pequeña actualización.

Lo siguiente, es que te descargues el componente gratuito que se llama HTTPGet para crear un sistema de descarga desde una carpeta que tengas en tu sitio online con los ficheros de actualización hasta el PC destino. Para verificar las nuevas versiones en línea, podrías crear un fichero .XML en la carpeta de tu sitio y descargarla cuando el actualizador sea ejecutado para comparar la versión del ejecutable con la actual información de actualizaciones contenidas en el fichero .XML. El componente gratuito Version Information Component (32 bit) permite obtener información interna de la versión del ejecutable.

Lo que preguntabas acerca de cómo lanzar el actualizador y cerrar la aplicación para actualizarla te propongo lo siguiente:

En el evento OnDestroy del programa ejecutar el Actualizador externo y cuando haga esto, que cierre o mate el proceso principal del programa, luego el actualizador externo que hayas hecho se encargará de actualizar y ESPERAR a que la actualización finalice, es decir, después de la descarga del parche, instación, cambios de archivo, etc lance automáticamente el programa. Con Try... Finally se puede controlar bastante bien esto y controlando el hilo de la ejecución (con CreateProcess). Entonces tienes que generar una rutina en el evento OnClose para que cierre el programa actualizador y lance el programa principal.

Bueno, si no quieres utilizar parches, utiliza instaladores en silencio (silence updates installations). Para crear instaladores bastante buenos y modernos, te recomiendo Inno Setup + ISTool (IDE para el instalador de Inno Setup)

Como ves, un básico sistema actualizador, pero funcional

Por ahí va la idea, No ocupes otros componentes para que veas lo entretenido que es hacerlo a mano, es más largo pero es entretenido y se aprenden otras cosas.

Saludos y espero que de algo te sirva este pequeño grano de arena

Última edición por Black_Ocean fecha: 12-04-2008 a las 00:45:22.
Responder Con Cita
  #5  
Antiguo 12-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Muy interesantes los aportes.
Muchas Gracias juanelo y Black_Ocean.
Voy a tratar de entender todo esto poco a poco, lo veo complicado para mi, pero ya lo entenderé.
Gracias de nuevo.
Saludos
Responder Con Cita
  #6  
Antiguo 12-04-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
esto no es elegante, pero igual te sirve mientras buscas como hacer actualizaciones...

Para que el sistema operativo no te marque el error de que el archivo está en uso y para que no tengas que decirles que se salgan del programa, simplemente cámbiale el nombre al archivo y luego pegas el nuevo.

La próxima vez que entren, van a entrar al nuevo.
__________________

Responder Con Cita
  #7  
Antiguo 12-04-2008
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Por si necesitas lago comercial: http://www.autoupdateplus.com

Ver demo: http://www.autoupdateplus.com/Demo/Demo.html
Responder Con Cita
  #8  
Antiguo 12-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Gracias por las sugerencias.
ContraVeneno, elegante o no es muy sencillo y practico.
Gracias de nuevo.
Saludos
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
instalacion automatica alfil123 Conexión con bases de datos 14 08-02-2008 11:34:28
búsqueda automática fergape Varios 4 04-05-2006 18:48:53
tabulacion automatica aram2r PHP 1 10-02-2005 12:44:00
Actualización automática del archivo EXE acalderonr Varios 5 08-07-2004 21:31:29
Actualizacion automatica de registros Eklypsex Firebird e Interbase 2 19-05-2004 13:05:49


La franja horaria es GMT +2. Ahora son las 03:41:54.


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