SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: okap en Lunes 5 de Febrero de 2007, 11:27

Título: Problema Borrar Ejecutable Desde Setup
Publicado por: okap en Lunes 5 de Febrero de 2007, 11:27
Hola a todos:

La semana pasada publique un problema que tenía a la hora de borrar un ejecutable desde él mismo. Me propusisteis una solución que me fue de gran ayuda la cual consistía en crearme un fichero "Killer.vbs", el cual lo creaba desde el propio ejecutable antes de que este terminase. Al lanzar el archivo 'Killer.vbs', este se espera 5 seg. y tras este tiempo borra el ejecutable.
Pues bien todo esto funciona si lanzo el ejecutable tal cual, sin más. Pero el problema es que dicho ejecutable forma parte de una instalación, con un setup, etc. Este ejecutable del que hablo se debe de lanzar automáticamente en un determinado momento de la instalación, hacer su función y luego destruirse gracias al archivo 'Killer.vbs'. El problema está en que cuando el ejecutable se lanza desde la instalación, no se crea el fichero 'Killer.vbs' y evidentemente tampoco se borra el ejecutable.
Todo esto lo probé en una máquina con windows 98, No funcionó y pensé que el problema sería por alguna librería que me haría falta y que w98 no tendría, ya que en mi máquina con w2000 sí que funciona. He probado la instalación en una máquina con windows xp y el ejecutable no se borra ni tampoco se crea el fichero 'Killer.vbs'.
No sé por donde puede andar el problema. No entiendo por qué si lanzo el ejecutable sin más sí que funciona y, sin embargo, si se lanza desde el instalador no funciona lo de la autodestrucción del ejecutable.
Espero haberme explicado con claridad, para que me podais ayudar mejor.
Muchas gracias.
Título: Re: Problema Borrar Ejecutable Desde Setup
Publicado por: Eternal Idol en Lunes 5 de Febrero de 2007, 12:21
Si no se esta creando el archivo vbs es muy facil encontrar el problema, depura el ejecutable que deberia crearlo. Una forma facil de hacerlo es poniendo un MessageBox justo antes de lo que queremos depurar y despues "attachear" el depurador.
Título: Re: Problema Borrar Ejecutable Desde Setup
Publicado por: okap en Lunes 5 de Febrero de 2007, 14:00
Disculpa mi ignorancia pero no entiendo el término "attachear el depurador".  Además hay que tener en cuenta que cuando lanzo dicho ejecutable de forma independiente, sí que crea el archivo ".vbs" y tras unos segundos borra el ".exe". El problema está cuando dicho ejecutable, en lugar de lanzarlo yo mismo, lo lanza el programa de instalación. Es entonces cuando no crea el archivo ".vbs".
Gracias.
Título: Re: Problema Borrar Ejecutable Desde Setup
Publicado por: Eternal Idol en Lunes 5 de Febrero de 2007, 14:35
Cita de: "okap"
Disculpa mi ignorancia pero no entiendo el término "attachear el depurador".  Además hay que tener en cuenta que cuando lanzo dicho ejecutable de forma independiente, sí que crea el archivo ".vbs" y tras unos segundos borra el ".exe". El problema está cuando dicho ejecutable, en lugar de lanzarlo yo mismo, lo lanza el programa de instalación. Es entonces cuando no crea el archivo ".vbs"
No exactamente hay que tener en cuenta eso ya que, al menos para mi, no indica la solucion. Con "attachear" el depurador me refiero a una opcion que proveen tanto el Visual Studio (Menu Debug>>Attach to process) como el WinDbg (Menu File>>Attach to a process). De esa manera podes ver la razon por la cual falla el CreateFile ... si es que es llamado. Tambien podes usar tecnicas mas simples, como printf ...