begin process at 2012 02 09 13:36:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > CHANGER L'ICÔNE D'UN EXÉCUTABLE[C++/DEV-CPP]

CHANGER L'ICÔNE D'UN EXÉCUTABLE[C++/DEV-CPP]


 Information sur la source

Note :
Aucune note
Catégorie :API Niveau :Initié Date de création :26/08/2004 Date de mise à jour :06/09/2004 21:37:05 Vu / téléchargé :24 287 / 3 031

Auteur : Pamaury

Ecrire un message privé
Site perso
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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) .


 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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

06 septembre 2004 21:37:05 :
correction du bug qui ne permettait de changer que la petite icône et changement complet(j'ai tout refais) de base . Ce code peut ainsi servir à modifier n'importe quelle ressource . Peut être une interface serait souhaitable ?

 Sources du même auteur

Source avec Zip Source avec une capture UTILISER L'INTERFACE D'UNE DLL DANS UNE MDI[SANS MFC][DEV-C+...
Source avec Zip SAUVEGARDER/RESTAURER DES CLASSES
Source avec Zip HÉRITAGE,MÉTHODES VIRTUELLES ET CLASSES ABSTRAITES
Source avec Zip Source avec une capture REPRÉSENTATION 3D QU'UNE FONCTION A DEUX INCONNUES
Source avec Zip DESSINER UNE MAISON SANS JAMAIS REPASSER PAR LE MÊME SEGMENT

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

Commentaires et avis

Commentaire de youpiyoyo le 26/08/2004 22:01:50

j'avais fais une source du meme styke ke la tienne mais moi ce ke je cherchais a faire c t changer les resources de mon propre prgm ki est entrain de tourner...
la source etais grafik et com la tienne mais en api win32, et je me demande meme si c pas toi ke j'ai aidé dans le forum car kelk'1 m'avais posé des kestions a ce sujet, et c peut etre toi... ki c en revanche j'ai abandonner ma source car mank de motiv pour perceverer, mais je sais ke c possible, car reshacker en ai capable...

Commentaire de Pamaury le 26/08/2004 23:35:55

(ce n'est pas moi que tu a aidé mais par contre ce post est cencé aidé celui du forum)
changer les ressource de son propre ex en cours de fonctionnement n'est pas possible(doc MSDN) ni même changer les ressource d'un exe en cours d'exécution(doc MSDN) . Je suis en train  de le refaire en graphique mais j'ai un bug donc il faut patienter

Commentaire de sibi12 le 30/08/2004 02:22:43

Rien ne t'empeche d'aller trifouiller dans la memoire du process (API Write/ReadProcessMemory) voir meme envoyer un message Invalidate pour raffraichir une ressource afficher a l'ecran..enfin j'ai pas essayer mais ça doit etre possible...
Mais bon l'exe n'est pas modifier pr autant.tu px attendre la fin du process et le changer a ce moment la et pkoi pas essayer d'intercepter le lancement d'une seconde instance(Je  ne sais pas si un API existe mais on peux imaginer une boucle sur les process existant)

Commentaire de Pamaury le 30/08/2004 10:05:59

Pour l'instant, j'essaye de changer tout court et c'est pas facile, de plus j'ai une abération . Si je conserve le handle sur le fichier, l'API crée automatiquement un fichier .temp qui est en fait l'exe modifié . Et en le renommant, je m'aperçoit que la modification est effective !!!!!!!!!!!!!!!!!!!!!! Mais si je détruit le handle sur l'exe(il est inutiles), les modification ne sont pas effective (snif mais j'y travaille surtout sur une nouvelle base encore plus solide ) Je sais que je vaios y arriver :; j'y suis presque .

Commentaire de sibi12 le 30/08/2004 16:56:00

c'est vrai que c'est assez bizarre...verifie si le fichier le handle est fermer comme il faut. si tu donne le bout de code je peux peut-être jeter un oeil

Commentaire de Pamaury le 31/08/2004 09:29:16

Et bien en fait je crois que je comprend : je fait le changement de ressource dans une énumération des ressource(avec les fonction de l'API) . Or, le handle que je détruit est celui de la fonction et pas celui de départ donc je vais changer un peu le code voir si çà bouge .
@++(si çà marche pas je met le code)

Commentaire de Pamaury le 06/09/2004 21:33:57

je viens de remetrtre à jour : s'il y a des pb dites le moi

Commentaire de benozor77 le 08/09/2004 18:29:34

Bonjour/Bonsoir,

Je constate que lorsque l'exe à pour îcone une fenêtre blanche, votre programme ne marcher pas.

Commentaire de Pamaury le 08/09/2004 18:33:03

bizarre, quand je l'ai testé il a marché tout le temps . Je vais chercher voir s'il n'y a pas une erreur .
Merci pour cette indication

Commentaire de agaga789 le 12/09/2004 16:24:55

ca ne marche pas

Commentaire de saylar le 10/06/2006 13:30:08

marche pas !

Commentaire de ronanT le 12/07/2006 16:39:22

marche tjs pas.

Commentaire de maladedede le 28/08/2006 02:21:38

slt
wooah c'est du beau travail parceque j'arivais pas moi a a changer la resource ICON parceque comme tu l'as di: le format d'une icône en resource est différente de celui du fichier.

Ou as tu trouvé ces information sur la structure d'un icone en fichier resource et e fichier ? :)

Commentaire de Pamaury le 28/08/2006 19:02:49

Absolument aucune idée . Cette source a deux ans maintenant et je ne me souviens plus comment j'ai trouvé çà mais sûrement en comparant le format en mémoire à celui en fichier et j'ai dû trouver une correspondance . Je ne peux pas le certifier .

Commentaire de maladedede le 29/08/2006 23:15:40

J'ai trouvé un lien interessant :D

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/msdn_icons.asp

Commentaire de ak08154711 le 06/08/2007 17:11:14

This Code in DLL?

Commentaire de benland le 21/11/2007 13:36:08

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.

Commentaire de phenix22000 le 24/04/2009 03:03:05

Marche toujours pas!
DOMMAGE de poster un code qui ne fonctionne pas!

Commentaire de Aulios le 14/02/2010 09:27:39

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

Commentaire de ducreft le 11/05/2011 11:35:01

je confirme ça ne marche pas...
je vais essayer les modifs conseillées par Benland mais je pense que d'autres ont essayé...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales