[C con Clase] WinAPI - Como crear EXE que se cierre y se borre.
Ten Voltios
tenvoltios en hotmail.com
Jue Abr 26 04:58:00 CEST 2007
Holas
hay un lindo codigo en la red que funciona super bien ya que hace un bucle
en el .bat
aki va:
static const char tempbatname[] = "_uninsep.bat" ;
void Selfdestruct()
{
// temporary .bat file
static char templ[] =
":Repeat\r\n"
"del \"%s\"\r\n"
"if exist \"%s\" goto Repeat\r\n"
"rmdir \"%s\"\r\n"
"del \"%s\"" ;
char modulename[_MAX_PATH] ; // absolute path of calling .exe file
char temppath[_MAX_PATH] ; // absolute path of temporary .bat file
char folder[_MAX_PATH] ;
GetTempPath(_MAX_PATH, temppath) ;
strcat(temppath, tempbatname) ;
GetModuleFileName(NULL, modulename, MAX_PATH) ;
strcpy (folder, modulename) ;
char *pb = strrchr(folder, '\\');
if (pb != NULL)
*pb = 0 ;
HANDLE hf ;
hf = CreateFile(temppath, GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) ;
if (hf != INVALID_HANDLE_VALUE)
{
DWORD len ;
char *bat ;
bat = (char*)alloca(strlen(templ) +
strlen(modulename) * 2 + strlen(temppath) + 20) ;
wsprintf(bat, templ, modulename, modulename, folder, temppath) ;
WriteFile(hf, bat, strlen(bat), &len, NULL) ;
CloseHandle(hf) ;
ShellExecute(NULL, "open", temppath, NULL, NULL, SW_HIDE);
}
}
link
http://www.codeproject.com/file/cpselfdestruct2.asp
>From: Programante <programante en gmail.com>
>Reply-To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>Subject: Re: [C con Clase] WinAPI - Como crear EXE que se cierre y se
>borre.
>Date: Wed, 25 Apr 2007 23:44:49 +0200
>
>Dare escribió:
> > Quizás hay alguna manera de hacer eso, poner un código ejecutable en
>memoria y que no pare hasta que (se cierra el ejecutable) y borre el
>ejecutable. Aunque esto me supera y lo veo muy difícil. Quizás haya otra
>manera.
> >
>El problema es que al poner el ejecutable en memoria, se mapea el .exe
>en memoria, por lo que no se puede borrar mientras se ejecuta.
>Necesitarías un ejecutable de un tercero.
>Se podría implementar el código del .bat pero como un programa ya
>existente, al que le copias ese código y pones a ejecutar. La base es la
>misma, aunque a mucho más bajo nivel, pero evitarías que el usuario
>pudiese descubrir el .bat
>
>_______________________________________________
>Lista de correo Cconclase Cconclase en listas.conclase.net
>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_________________________________________________________________
De todo para la Mujer Latina http://latino.msn.com/mujer/
Más información sobre la lista de distribución Cconclase