Cita:
|
Empezado por acalanto Prueba a utilizar el evento QueryUnload del (Por ejemplo) formulario principal de la aplicación. En este evento puedes poner el código necesario para fnalizar la aplicación de forma segura.
Espero que te resulte útil.
PD: Cuando el formulario detecte (mediante vbAppWindows o vbAppTaskManager) que la aplicación debe finalizar, es probable que algunos servicios de windows hayan sido detenidos y descargados. Debes controlar aquello que pueda no funcionar como esperas. |
Efectivamente ese es el evento con el que estoy esperimentando, el problema que tiene como tu bien dices consiste en controlar que los servicios que necesito no hayan sido descargados ya, para ello tengo un gancho "Hook" al gestor de servicios para conocer el estado, pero aun asi no puedo evitar dicha descarga, con lo que hay veces que no puedo realizar las tareas previstas antes de apagar el ordenador.
Finalmente como el tiempo me apremia, he optado por una solucion que yo particularmente considero una chapuza pero que funciona, consiste en poner un gancho "Hook" al menu inicio para detectar cuando la opcion de apagar es seleccionada, si es asi, el programa al detectarlo evita la ejecucion normal y presenta un mensaje al usuario pidiendole que confirme que desea apagar el ordenador, si la respuesta es afirmativa el programa realiza las tareas necesarias y al terminar apaga el ordenador, en caso contrario permite la ejecucion normal de la orden apagar.
Se que es un lio pero de momento es lo unico que tengo, si a alguien se le ocurre algo mejor y mas limpio que no dude en decirmelo.
De nuevo muchas gracias a todos, y si alguien necesita el codigo que he mencionado en cuanto lo termine se lo envio.
Salu2