Montrons par étapes. Tout d'abord, vous devez regarder ce qui est dans votre EXE:
wrestool -l file.exe
Normalement, la meilleure icône de son premier GROUP_ICON, mais quand les noms de GROUP_ICONs sont des mots au lieu de chiffres, puis est le GROUP_ICON avec la plus grande taille (ou la deuxième plus grande taille si le premier GROUP_ICON est vide, vous devrez extraire les deux).
wrestool -x -t14 -n(GROUP_ICON name) file.exe > file.ico
Si vous voulez créer un code parfait, vous devriez probablement inclure le trop langage GROUP_ICON (parfois l'exe ne sera pas une langue (applications 16 bits), vous aurez donc besoin de mettre les deux de la codes):
wrestool -x -t14 -n(GROUP_ICON name) -l(GROUP_ICON language) file.exe > file.ico
Dans certaines applications, l'extraction GROUP_ICON échouera. En effet, certaines nouvelles applications (comme les nouveaux jeux) utilisent GROUP_ICON comme lien, et insèrent les icônes réelles dans les ICONs. Ensuite, vous aurez besoin d'extraire la plus grande icône avec ce code:
wrestool -x -R -t3 -n(ICON name) -o. file.exe > file.ico
mais il y aura un gros problème. Cela va extraire l'ICONE, mais une petite partie du fichier manquera, ce qui est essentiel pour ouvrir ce fichier en .ico. Vous devrez ouvrir ce fichier dans un éditeur hexadécimal et insérer dans le fichier un petit code HEX avant tout le reste.
00 00 01 00 01 00 80 80 00 00 01 00 18 00 28 C8 00 00 16 00 00 00
Probablement, maintenant vous pensez que c'est la fin. NON. Le pire est à venir: extraire la bonne image de l'ICO. Premièrement, vous aurez besoin non seulement de wrestool, mais d'icotool. Ensuite, utilisez ce code:
icotool -l file.ico
Ensuite, vous devez extraire le fichier avec la plus grande largeur, hauteur et profondeur de bits.
icotool -x -o. -w(Width) -h(Height) -b(Bit-depth) file.ico
Le résultat sera un fichier PNG avec l'icône parfaite. Parfois, ce code peut échouer (Exemple: le programme "Robust Motion Deblurring"), alors vous aurez besoin d'un second converseur pour passer de ICO à PNG, mais ce converseur peut échouer dans certains cas (Exemple: Le jeu "Mass Effect") , donc vous aurez probablement besoin des deux dans votre code.J'ai utilisé cette logique dans un programme Objective-C une fois, donc je sais que c'est fonctionnel (et jusqu'à présent, avec 99,9% de réussite).
J'ai oublié de dire: parfois, il y aura plus d'un 'GROUP_ICON' avec les meilleures ressources. Dans ce cas, si la variable 'name' est numérique, la bonne est le nombre' 0'. Si 'nom' est un nom, le nom correct est le plus lourd (avec la plus grande' taille'). – VitorMM