Changer l'icône d'un exécutable[c++/dev-cpp]

Soyez le premier à donner votre avis sur cette source.

Vue 27 740 fois - Téléchargée 3 281 fois

Description

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mardi 5 décembre 2006
Statut
Membre
Dernière intervention
11 mai 2011

je confirme ça ne marche pas...
je vais essayer les modifs conseillées par Benland mais je pense que d'autres ont essayé...
Messages postés
24
Date d'inscription
vendredi 11 décembre 2009
Statut
Membre
Dernière intervention
30 mars 2011

Bonjour,
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
Messages postés
11
Date d'inscription
jeudi 13 novembre 2008
Statut
Membre
Dernière intervention
28 mars 2012

Marche toujours pas!
DOMMAGE de poster un code qui ne fonctionne pas!
Messages postés
14
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
25 mai 2010

Ton script est sympa, mais il a quelques bugs...
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.
Messages postés
2
Date d'inscription
samedi 4 février 2006
Statut
Membre
Dernière intervention
9 juin 2006

This Code in DLL?
Afficher les 20 commentaires

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.