Cambiar icono a un ejecutable

Iniciado por sch3m4, 14 Junio 2005, 16:17 PM

0 Miembros y 1 Visitante están viendo este tema.

sch3m4

Hola, esta vez me dirijo a ustedes para plantearos dicha cuestión. Alguien sabe cómo puedo cambiar el icono a un ejecutable? Qué apis debo usar... He buscado por msdn pero no encontré mucho, y en google tampoco  :-\
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..

byebye

BeginUpdateResource, cuando leas la documentacion sobre ella te nombrara las que faltan.

sch3m4

#2
Gracias  :D

He buscado info, y me he codeado este código:


#include <stdio.h>
#include <windows.h>

void main()
{
FILE *icono;
int size,i;
char *buffer;

/*el handle para cambiar saber a qué fichero queremos cambiarle el icono*/
HANDLE hicono=BeginUpdateResource("C:\\nc.exe",FALSE/*no borramos el icono original*/);

/*VAMOS A CALCULAR EL TAMAÑO PARA EXTRAER LOS DATOS*/
icono=fopen("C:\\icono.ico","rb");
fseek(icono,0,SEEK_END);size=ftell(icono);

/*creamos el buffer*/
buffer=(char *) malloc(ftell(icono)*sizeof(char));

/*METEMOS EL ICONO EN EL PUNTERO*/
fseek(icono,0,SEEK_SET);

//leemos
i=fread(buffer,1,size,icono);
buffer[i]='\0';
fclose(icono);

/*TENEMOS:
- Tamaño del fichero (size)
- El fichero cargado en la memoria (buffer)
*/

//miramos si todo está bien
if(hicono==NULL)
{
printf("\n[x] Error en el handle del icono");
free(buffer);
CloseHandle(hicono);
return;
}

UpdateResource(hicono, //el handle al fichero
RT_ICON, //tipo de resource a cambiar
MAKEINTRESOURCE(104), //nombre
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), //idioma
buffer, //el buffer con el contenido
size); //el tamaño

/*cerramos y salimos*/
EndUpdateResource(hicono,FALSE/*para guardar los cambios*/);

printf("\n[+] Icono cambiado!");
CloseHandle(hicono);
return;
}


Pero no me cambia el icono y no sé dónde puede estar el fallo  ???
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..

SterilizeD_HasH


byebye

esta sección es de programacion, es decir el pregunta con que funcion/es puede cambiar el icono de X programa (claro esta desde su aplicacion).

rimaura20

Para Visual Basic es muy sencillo que un usuario VB, cambie el icono de una aplicacion en curso, lo único que hay que hacer es seleccionar un icono a cda formulario con la opcion Icon dentra de la tabla de Propiedades(F4), luego al complilar "EXE", en el botón Opciones, aparece una ventana donde podras seleccionar cual de los Formulariostiene el Icono que deseas para tu aplicacion Visual Basic Net, eso es todo. para obtener mas conocimientos comunicarse a rimaura20@hotmail.com ha! y no olvidar ingresar a mi espacio!

Override

En lo personal me interesa este tema, tenía por ahi un código en C que cambiaba el icono de un ejecutable pero lo perdí hace tres días jaja, si encuentro al autor lo posteo para que lo chequeis :), también he visto el código del virus ReDemption de Jacky Qwerty (muerty prefiero decirle:P) donde él lee el fichero con un mapa en memoria y extrae el recurso de un host a infectar y luego se lo coloca... muy interesante.


latoto2009

Prueba lo siguiente:
1.- Copia el icono en el directorio o carpeta de proyecto para que el compilador lo incruste.
2.- Cambia el directorio del recurso, en este caso del icono, al directorio del proyecto.
3.- Comprueba si en el archivo final el .exe ha modificado su icono. Saludos!