Página 1 de 1

Extraer icono de mi ejecutable y aplicarlo [SOLUCION]

Publicado: 06 Ago 2015, 19:57
por yasmany
Un buen día a todos, puede que esto sepan muchos, pero lo pongo para que pueda ser util para quienes no lo sabíamos.

Bueno lo realicé con el fin reducir el tamaño de mi ejecutable, ya que ANTES hacia que se compile con un icono agregado mediante FileInstall, y el icono pesaba 53.9kb.

Esto lo que hace es crear iconos de acuerdo al tamaño que se desee, por ejemplo yo necesito un icono de 16x16 para aplicarlo en la barra de la ventana y en el TrayIcon, otro icono es de 32x32 que lo necesito para aplicarlo en la cabecera de mi aplicación y uno mas grande de 120x120 para aplicarlo en el Acerca de...

Cabe mencionar que para aplicar los tamaños estos no deben supera el tamaño del icono con el que hayan compilado.
Bueno espero sea de ayuda... saludos :smt024

Código: Seleccionar todo

#include <WinAPIGdi.au3>
#include <WinAPIShellEx.au3>

_crearIconos("iconoAvy16", 16, 16)
_crearIconos("iconoAvy32", 32, 32)
_crearIconos("iconoAvy120", 120, 120)

Func _crearIconos($nombreIcono, $ancho, $alto)
	Local $aIcon = _WinAPI_Create32BitHICON(_WinAPI_ShellExtractIcon(@ScriptFullPath, 0, $ancho, $alto), 1)
	_WinAPI_SaveHICONToFile(@TempDir& "\" & $nombreIcono&".ico", $aIcon)
	$aIcon = ""
EndFunc   ;==>_crearIconos

Re: Extraer icono de mi ejecutable y aplicarlo [SOLUCION]

Publicado: 06 Ago 2015, 21:47
por Dany
Muy bien Yasmany.

unas Acotaciones:
Trata de usar alguna notacion/prefijo para las variables. por ejemplo yo suelo hacerlo asi:

$iSize=voy a trabajar con un entero
$b=voy a trabajar con un boton o con una variable boolean.
Etc. Todo esto no es necesario. es por comodidad.

Trata de manejar errores. por ejemplo retorna algo: Return _WinAPI_SaveHICONToFile(@TempDir & "\" & $nombreIcono&".ico", $aIcon)

Y una duda. ¿Porque usas la notación "$a" en $aIcon? Yo suelo usarla cuando trabajo con vectores(arrays).

Saludos :smt027

Re: Extraer icono de mi ejecutable y aplicarlo [SOLUCION]

Publicado: 06 Ago 2015, 22:20
por yasmany
fue que tome el code de la ayuda de Autoit y pues ahi estaba con unos for y arrays y pues no modifique la variable por pereza :smt015 y solo tome lo importante de ahí excuseme..
gracias por las sugerencia, podrias explicarme el retorno de errores en que me ayuda... me gustaría aprender :smt026

Re: Extraer icono de mi ejecutable y aplicarlo [SOLUCION]

Publicado: 07 Ago 2015, 02:52
por Dany
El retorno es para saber si algo esta funcionado.

If _algunaFuncion() then
msgbox(0,"Bien","Todo va Bien :)")
else
msgbox(0,"Mal","ocurrió Un Error :(")
endif

:smt027
Saludos

Re: Extraer icono de mi ejecutable y aplicarlo [SOLUCION]

Publicado: 07 Ago 2015, 15:37
por yasmany
muy interesante, gracias Dany... lo tomaré muy en cuenta. :smt023 :smt024

Re: Extraer icono de mi ejecutable y aplicarlo [SOLUCION]

Publicado: 07 Ago 2015, 17:06
por Dany
De nada bro. Cualquier cosa ya sabes donde ando.


Saludos :smt027