IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[Demande]Changer l'icone d'un fichier


Sujet :

Windows Forms

  1. #21
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Ce n'est pas tout à fait se que je veux.

    Ce que je veux c'est qu'avec SHGetFileInfo j'obtien l'icone d'un fichier(Ca je le fais déja) et que t'utilise cette même icone avec InjectIcon tout ca avoir à extraire cette même icone dans un dossier.

  3. #23
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Non mais une fois que tu arrives à récupérer l'icone, tu la sauvegarde vers n'importe où (un emplacement temporaire), tu appelles InjectIcon et tu supprime l'icone temporaire ..

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Ouais il y a cette option je sais mais la j'ai découvert que ca marche pas vraiment InjectIcon, quand j'Inject un Ico dans un fichier(EXE) ca marche pas avec tout les EXE , certain EXE ont plusieurs icones(exemple: la même icone de plusieurs taille différente) à l'interieur d'eux alors quand je met mon Ico elle ne remplace pas aucun icone, elle fait juste s'ajouter.

    En tout cas , la j'ai mal expliquer parce qu'il faudrait que vous aillez ResHacker pour voir comment c'est fait à l'intèrieur d'un EXE.

  5. #25
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    ...

    Je sais comment est fait un Exe, je sais aussi que ResHacker n'est pas le meilleur dans le domaine j'ai déjà vu beaucoup plus performant donc il faudrait arrêter de ne jurer que par lui

    Je sais aussi qu'un exe peut donc avoir plusieurs icônes mais pour l'utilisation que j'ai fait de InjectIcon vu que c'était pour mon usage "personnel" je m'arrangeais pour me placer dans le cas où ça marche toujours (vu que mon application n'avais qu'une seule icône).

    Enfin la dernière chose que je sais concernant ce problème c'est que les exemples d'utilisation de UpdateResource avec les icônes sont rares ... mais bien sur tu peut modifier la source que je t'ai envoyée pour qu'elle soit plus performante et proposer à tout le monde le chef d'œuvre

    La franchement, je n'ai pas la motivation de coder ça

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Il n'existe pas une fonction DeleteResource?
    Parce que quand je suprime tout les resource du fichier à modifier en faisant comme ceci: BeginUpdateResource(execFileName, true); ICI "TRUE" DIT DE SUPRIMER TOUT LES RESOURCES PRÉSENTE SUR LE FICHIER, tout les Resources de l'EXE son suprimer et il ne reste que mon icone à l'interieur.

    se qui faudrait c'est obtenir la taille de l'icone du fichier EXE à modifier et chercher dans ses Resources quel Resources a la même taille que celle de son icone pour finalement suprimer cette Resource pour la remplacé par l'icone d'InjectIcon

    EDIT: J'ai trouver un programme qui permet de changer l'icone de tout les types de fichier et je me demande vraiment trop comment il a fait ca le codeur!!
    ICI

  7. #27
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Tout ceci ressemble plutôt à du bricolage... A mon avis pas de mystère : si tu veux customiser les icônes pour une extension, crée ton propre Icon handler.

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Je sais pas si j'ai bien comprit mais ca resemble beaucoup à comment assigné une icone à un extention de fichier , se que je veux pas faire.

    Moi c'est plus de pouvoir assigné une icone(différente) à n'importe laquelle fichier(But Final)

  9. #29
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Je pense que tu n'as pas bien lu le lien que je t'ai fourni.
    Dès la seconde ligne, il est dit :
    However, an icon registered in this way will be the same for all members of the file class. You can have much more flexibility in assigning icons to the members of the file class by implementing an icon handler.
    Ce qui je pense correspond exactement à ton besoin.

  10. #30
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par slayer418 Voir le message
    se qui faudrait c'est obtenir la taille de l'icone du fichier EXE à modifier et chercher dans ses Resources quel Resources a la même taille que celle de son icone pour finalement suprimer cette Resource pour la remplacé par l'icone d'InjectIcon
    Je suis de tout cœur avec toi

  11. #31
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Ouais mais comment ca fonctionne?
    Ca me permetterais de changer l'icone de n'importe quelle fichier?

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Oh ca fait un bout de temps que j'ai pas eux de réponse, alors je fait un petit "UP".

    Quoi que c'est peut-être moi qui est rendu habituer de recevoir des réponses rapidements

    Edit: BCmDev , pourrais-tu m'aider avec les "Icons Handler" je comprend pas vraiment comment ca s'utilise?

  13. #33
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    En cherchant un peu, je viens de trouver ce lien qui propose en téléchargement du code VB .Net. J'ai simplement ouvert la solution (qui compile du premier coup) et on peut voir que le travail fait est important : il te permet de dériver d'une classe de base implémentant déjà les interfaces demandées par le shell. Tu n'as plus qu'à surcharger les méthodes...
    Si tu choisis de tester cette voie, donne ton retour...

  14. #34
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    J'ai finalement pris le temps d'essayer l'IconHandler fourni en exemple : il fonctionne très bien et tu peux t'en servir comme support pour ton propre IconHandler.

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Je vais esssayer tout ca mais je comprend pas encore vraiment, peux-tu juste me répondre si ca va me permettre de changer l'icone de n'import quelle fichier à partir de mon programme?


    EDIT: Ouais mais les IconHandler ne permet pas de changer l'icone des fichier , regarde IcI , ah moin que je me trompe.

    EDIT2: Apres avoir lu ce Topic , j'ai comprit se qu'était les Icon Handler : Un IconHandler permet de définir l'icône fichier par fichier et non extension par extension

    Mais je sais Toujours pas comment on fait pour définir l'icône fichier par fichier.

  16. #36
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Je vois que tu avances...
    As-tu téléchargé le code via le lien que je t'ai fourni ? Si oui, regarde l'exemple présent. C'est un IconHandler pour les fichiers .bmp qui affiche une miniature de l'image comme icône. Tu peux je pense t'en servir comme modèle, il y a très peu de code. Le code le plus difficile est dans la classe de base, tu n'as pas besoin de le comprendre si cela t'ennuie. Dérive simplement de la classe de base et surcharge les méthodes nécessaires. Si tu te heurtes à des problèmes, je pourrai t'aider dès lundi.

  17. #37
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Après notre conversation par MP, je joins le projet de mon IconHandler.
    Mais comme de te l'ai dit, ça risque d'être trop dur pour toi à comprendre si tu ne connais ni COM, ni ATL...
    Fichiers attachés Fichiers attachés
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #38
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 54
    Points : 11
    Points
    11
    Par défaut
    Je comprend toujours pas...
    J'ai essayée ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           Dim Test As Edanmo.ShellExtensions.IconHandlerBase
     
            Test.OnExtractIcon("c:\Documents and Settings\Administrateur\Bureau\firefox.exe", 1, 32, 16, 32, 16)
    Mais ca me renvoi toujours une erreur.

    EDIT: Edanmo , ca vien du lien de BCmDev

  19. #39
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par slayer418 Voir le message
    Je comprend toujours pas...
    J'ai essayée ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           Dim Test As Edanmo.ShellExtensions.IconHandlerBase
     
            Test.OnExtractIcon("c:\Documents and Settings\Administrateur\Bureau\firefox.exe", 1, 32, 16, 32, 16)
    Mais ca me renvoi toujours une erreur.
    D'abord, je ne suis pas sûr que ce soit la bonne façon de l'utiliser, mais bon, comme je ne connais pas le projet de Medinoc je ne me prononcerai pas là-dessus...

    Mais d'un point de vue purement technique, ça ne peut pas marcher : tu déclares la variable Test sans l'initialiser (donc elle vaut Nothing) et ensuite tu essaies d'appeler une méthode dessus, donc forcément ça plante...

    J'ai l'impression que tu débutes en VB.NET... avant de te lancer dans un truc compliqué comme ça, tu devrais peut-être commencer par des choses plus simples, parce que là tu m'as l'air parti pour bien galérer !

  20. #40
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Tu n'y es pas, slayer418. Ta classe doit dériver de Edanmo.ShellExtensions.IconHandlerBase puis surcharger la méthode OnExtractIcon. N'oublie pas d'indiquer l'extension de fichier via l'attribut dédié.
    L'appel sera ensuite fait directement par le shell, tu n'as pas d'appel à écrire. Quand tu compiles, l'IconHandler est enregistré automatiquement par Visual Studio. Tu peux donc voir directement le résultat dans l'explorateur.

Discussions similaires

  1. [XL-2003] Changer icone d'un fichier excel
    Par toinou28 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/05/2009, 13h35
  2. Changer l'icone d'UN fichier excel
    Par Speed41 dans le forum Excel
    Réponses: 7
    Dernier message: 26/03/2009, 10h58
  3. [HTML] changer d'icone pour un fichier HTML
    Par Cuenod dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/02/2008, 23h05
  4. Changer l'icone d'un fichier compilé (exe)
    Par pitizone dans le forum MATLAB
    Réponses: 5
    Dernier message: 05/04/2007, 09h54
  5. [VB6] Changer l'icone d'un fichier
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 33
    Dernier message: 12/05/2006, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo