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 Discussion :

Associer une icone à une extension


Sujet :

Windows

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Associer une icone à une extension
    Bonjour,

    J'ai créé un programme me permettant de générer des fichiers avec une extension propre à ce dit programme.
    J'aimerai associé une icone à ce type d'extension.

    Etant donné qu'un double clic sur le fichier me lance le programme que j'ai crée, l'icone de ce fichier se trouve être un rectangle blanc avec au milieu l'icone du .exe.
    J'aimerai changer ceci et que cette modification se fasse automatiquement lors de la création de chaque nouveau fichier.

    D'avance merci pour votre aide
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Tout ça se règle dans la base de registre : tu veux le faire une fois pour toutes pour TA machine, où que ton programme le fasse lors de son installation ?
    Dans le premier cas, c'est une question pour le forum Windows "tout court", sinon, c'est une question soit pour un forum sur l'outil de setup que tu utilises, ou effectivement ce forum-ci si tu veux le faire par les appels à l'API Win32.

    Sinon, ça se passe dans HKCR, il faut ajouter à la clé décrivant ton fichier une clé DefaultIcon contenant une valeur (celle par défaut) qui est le chemin d'accès à l'icône.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [HKEY_CLASSES_ROOT\FirefoxHTML\DefaultIcon]
    @="C:\\Program Files\\Mozilla Firefox\\firefox.exe,1"
    permet de définir l'icône qui sera utilisée pour TOUS les documents HTML gérés par Firefox.

    Si tu ne veux modifier QUE l'icône des fichiers avec une extension .HTM (et laisser l'icône par défaut pour les extensions .HTML, par exemple), alors il faut taper dans la clé de l'extension elle-même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [HKEY_CLASSES_ROOT\.htm\DefaultIcon]
    @="C:\\Program Files\\Mozilla Firefox\\firefox.exe,1"
    Une icône peut être référencée de plusieurs manières : directement par un fichier .ICO, ou comme index d'une ressource icône au sein d'un EXE ou d'une DLL. La syntaxe ci-dessus utilise la deuxième icône (base zéro) contenue dans l'exécutable Firefox. L'icône zéro, la première, est celle affichée par l'explorateur pour l'exécutable lui-même.


    Une fois l'icône d'un type de fichier modifiée, c'est permanent : que le fichier soit antérieur ou postérieur à cette modification du système ne change rien, la modification est globale et rétroactive et impacte TOUS les fichiers de ce type.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    C'est effectivement la deuxième solution qui m'intéresse. Peut-être que Inno Setup permet de faire ceci?

    Si ce n'ai pas le cas, les codes que tu me donnes sont à rentrer dans un .bat? ou autre?
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    C'est effectivement la deuxième solution qui m'intéresse. Peut-être que Inno Setup permet de faire ceci?
    Tout à fait :
    • Section Setup, champ ChangesAssociations pour informer l'OS que ça a changé.
    • Section [Registry] pour créer les associations en question.


    Citation Envoyé par Jiyuu Voir le message
    Si ce n'ai pas le cas, les codes que tu me donnes sont à rentrer dans un .bat? ou autre?
    Ce sont des extraits de fichiers .REG, en fait. Regarde la doc d'InnoSetup sur la section Registry, tu verras des similitudes immédiatement.
    Après, il faut savoir bien sûr comment associer proprement une extension à une application, et pour ça, direction MSDN. Tu peux aussi faire ça en appelant la commande assoc, mais je ne te le conseille pas car InnoSetup ne saurait alors pas comment désinstaller ceci proprement (il faudra rappeler assoc manuellement dans la désinstallation).

    Pour faire propre, il te faut au MINIMUM une structure de ce genre dans la base de registre (exemple avec deux extensions différentes associées à ton programme) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    HKCR
      |
      +-- .myext1
      |     |
      |     +-- (par défaut) = MyApp
      |
      +-- .myext2
      |     |
      |     +-- (par défaut) = MyApp
      |
      +-- MyApp
            |
            +-- (par défaut) = "MyApp document"
            |
            +-- DefaultIcon
            |     |
            |     +-- (par défaut) = "c:\mydir\myexe,1"
            |
            +-- Shell
                  |
                  +-- open
                        |
                        +-- command = "c:\mydir\my.exe" "%1"
    Il existe bien sûr pas mal d'autres options permettant d'élaborer des associations de meilleure qualité (menu contextuel, liens OLE, etc.) mais c'est, je pense, un sujet pour l'instant inutile pour toi.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    J'ai trouvé une soluce qui correspond exactement à ce que je veux faire ici.

    Merci de ton aide
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2021, 16h57
  2. [Débutant] Ajouter à une fenêtre une icone des ressources du projet
    Par Thomsy92 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 26/08/2009, 00h53
  3. Réponses: 5
    Dernier message: 21/05/2008, 12h03
  4. Comment ajouter une icone à une JInternalFrame
    Par wassimb dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 12/07/2006, 15h13
  5. Attribuer une icone à une application
    Par k_boy dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 31/08/2002, 01h38

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