![]() |
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. |
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. :) |
Cita:
¿Has probado enviando mensaje de cierre?
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é. |
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. |
La franja horaria es GMT +2. Ahora son las 21:43:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi