Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2019
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.082
Poder: 18
juanelo Va por buen camino
Cerrar programa y ejecutar otro

Que tal,
Aqui dandome de topes, les comento:
Ya tengo programada toda la funcionalidad de actualizacion de mi sistema, tiene una opcion de buscar actualizaciones, en casa de encontrarlas, se descargan y se intenta aplicar dicha actualizacion.
Para esto decidi que mi programa "principal" sea un "launcher" que chequea si hay alguna actualizacion descargada y en caso de ser asi, la aplica (copia los archivos dll's y exe's al directorio de instalacion)


1.- Se ejecuta la aplicacion launcher.exe, esta a su vez ejecuta admin.exe (y se cierra laucher)

2.- Se pregunta por alguna actualizacion en la Aplicacion Admin.exe, si hay se descarga y se manda a cerrar Admin.exe
3.- Se manda a ejecutar launcher.exe, esta checa si hay alguna actualizacion pendiente y la trata de aplicar.
4.- Se manda a llamar a admin.exe


El problema lo tengo en el paso 3, ya que al parecer los dll que carga admin.exe no se descargan antes de que el programa launcher.exe intente sustiuirlos (por los nuevos).


¿Alguien sabe como cerrar una aplicacion y forzar que todos los dll, bpl, etc se descarguen junto con la terminacio del programa que los cargó ?


Les gradezco el tiempo que puedan tomarse para darme una mano.
Saludos.
__________________
Ya tengo Firma!
Responder Con Cita
  #2  
Antiguo 06-07-2019
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola Juanelo, un gusto leerte.

Podrías intentar con hacer una pausa antes de iniciar el copiado de los archivos. También sería conveniente revisar si existen otras aplicaciones que necesiten de esas mismas DLLs.

Y un truco que podría funcionar es renombrar la DLL que ya tienes en disco antes de reemplazarla por la nueva. He visto que esto es permitido con Windows, incluso cuando la biblioteca se encuentra cargada en memoria.

Saludos.

Última edición por Al González fecha: 06-07-2019 a las 19:37:40.
Responder Con Cita
  #3  
Antiguo 08-07-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por juanelo Ver Mensaje
¿Alguien sabe como cerrar una aplicacion y forzar que todos los dll, bpl, etc se descarguen junto con la terminacio del programa que los cargó ?

¿Has probado enviando mensaje de cierre?
Código Delphi [-]
 SendMessage(MyHandle, WM_CLOSE, 0, 0);


Eso si, tal y como comenta [Al], en cualquier caso, debes darle tiempo a que se cierre y se descargue de memoria.
Siempre puedes hacer un bucle que revise las aplicaciones abiertas y espere hasta que esta no lo esté.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 10-07-2019
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.082
Poder: 18
juanelo Va por buen camino
Al, Neftali:
Muchas gracias por su tiempo y respuestas, me disculpo por reponder hasta hoy, pero he andado complicado ultimamente.
Les comento, decidi usar el viejo truco de la "progress bar osciosa", la uso para dejar pasar cierto tiempo y asegurar que todos los modulos se hayan descargado.
En verdad les agradezco mucho.
Saludos.
__________________
Ya tengo Firma!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ejecutar un programa dentro de otro. zugazua2001 Varios 1 24-06-2005 03:14:04
ejecutar otro programa php srangel PHP 3 01-04-2005 18:11:27
Cerrar mi programa desde otro Sr_Sombrero API de Windows 2 02-12-2004 23:12:09
ejecutar un programa dentro de otro migueilichenco Varios 1 28-11-2003 21:39:03
Ejecutar un programa DENTRO de otro programa seduerey Varios 8 12-11-2003 14:56:20


La franja horaria es GMT +2. Ahora son las 19:28:12.


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