Ce code permet de changer l'icône d'un executable(n'importe lequel sauf lui-même !!) . Une boite de dialogue vous demande de selectionner l'exe puis l'icône( . Si un fichier icône contient plusieurs icônes, ce programme choisi automatiquement la première(à améliorer) .
Source / Exemple :
voir le zip
Conclusion :
Ce code utilise les fonction de windows pour cherchcer et updater les ressource . De plus, le format d'une icône en ressource est un peu différent de celui du fichier piusqu'il continent uniquement la structure ICONIMAGE définit dans le fichier source .
A améliorer:
-une vrai interface
-sélection de l'icône s'il y en a plusieurs dans le fichiers
-permettre de visionner l'icône à changer et de la sauvegarder
11 mai 2011 à 11:35
je vais essayer les modifs conseillées par Benland mais je pense que d'autres ont essayé...
14 févr. 2010 à 09:27
Chez moi aussi ça ne marche pas.
Dommage cela aurait put me servir mon mes problème d'icône d'exécutable Python...
Bonne continuation
24 avril 2009 à 03:03
DOMMAGE de poster un code qui ne fonctionne pas!
21 nov. 2007 à 13:36
Pour ce qui serait encore interesse par ce code, voici les lignes qu'il faut corriger:
dans le main, la ou il y a ecrit ce bout de code: "if(res[i].Type.lpszType==RT_ICON && res[i].Name.Id==id)" ,
il faut le remplacer par : "if(res[j].Type.lpszType==RT_ICON && res[j].Name.Id==id)"
puis un peu plus bas dans le memcpy, il faut remplacer le "(LPVOID)res[I].lpData" PAR "(LPVOID)res[j].lpData"
Puis dans la fonction "ExtractIconsFromFile", la ou il y a ecrit "pIconDir=(LPICONDIR)LocalReAlloc(pIconDir,(sizeof(WORD)*3)+(sizeof(ICONDIRENTRY)*pIconDir->idCount),NULL);"
il faut remplacer le NULL par LMEM_MOVEABLE
Voila, avec ces modif ce programme devrait mieux marcher.
6 août 2007 à 17:11
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.