Astuces de recherche...
Home
- Accueil & nouveautés
- Les newsgroups VB
- Téléchargements
- L'équipe
- Nous contacter
- Liens
Rubriques
- Toutes les questions
- Affichage & graphismes
- Algorithmique
- API
- Base de registre
- Bases de données
- Contrôles
- Date & heure
- Déploiement
- Divers
- Erreurs & problèmes
- Fichiers & dossiers
- Généralités
- Impression
- Internet & mails
- Math
- Multimédia
- Réseaux
- Structures de données
- Texte & strings
- VB .Net
- VB Script
- VBA
- Windows

Question 75

Comment associer une extension de fichier à mon programme ?

C'est dans la base de registre que sont gérées les associations de fichiers, sous la clé HKEY_CLASSES_ROOT, où il vous faudra créer toute une série de clés et de valeurs. Pour savoir comment accéder à la base de registre, lisez la question 59.

Si votre programme est destiné à utiliser un nouveau format de fichier, vous devrez d'abord choisir une nouvelle extension pour représenter vos fichiers. On distingue deux types d'extensions : les extensions courtes, composées de 3 caractères maximum et les extensions longues, composées de plus de 3 caractères. Ces dernières sont préférables car elles limitent le risque de "collision d'extensions", en d'autres mots, le risque que deux fichiers de formats différents aient la même extension. Néanmoins les extensions courtes restent encore les plus usitées. En fait, le mieux est de définir à la fois une extension courte et une extension longue.
Lors du choix d'une nouvelle extension, vous devrez aussi vous assurer que celle-ci n'est pas déjà employée. Pour ce faire, consulter la base de données des Multipurpose Internet Mail Extensions (MIME) de l'Internet Assigned Numbers Authority (IANA), ou bien d'autres bases de données de types de fichiers, telles que http://filext.com/ ou http://extsearch.com/. Une fois votre extension choisie, vous pouvez, si vous le désirez, l'enregistrer auprès de l'IANA.

La deuxième étape consiste à choisir un PROGID, qui permettra d'associer votre extension à votre programme, et de contrôler le comportement de cette association. Le format recommandé pour les noms de PROGID est : [Distributeur ou Application].[Composant].[Version]. Exemples : Word.Document.8 ou VisualBasic.Form.

Une fois votre PROGID choisi, ajoutez la clé HKEY_CLASSES_ROOT/VOTREPROGID. Comme valeur par défaut pour cette nouvelle clé, entrez un nom convivial décrivant le format de votre fichier. Par exemple : Document Microsoft Word ou Son au format mp3. C'est cette petite description qui sera affichée dans l'explorateur.

Sous cette nouvelle clé, ajoutez ensuite la clé HKEY_CLASSES_ROOT/VOTREPROGID/DefaultIcon avec comme valeur par défaut l'emplacement de l'icône associée à votre type de fichier. Celle-ci peut soit être un fichier .ico, soit être stockée dans un fichier .exe ou dans une dll. Auquel cas vous devez en plus préciser un index. Exemple : C:\PROGRA~1\INTERN~1\iexplore.exe,9.

Parallèlement à la clé DefaultIcon, ajoutez la clé HKEY_CLASSES_ROOT/VOTREPROGID/shell. Ajoutez ensuite la sous-clé HKEY_CLASSES_ROOT/VOTREPROGID/shell/Open en spécifiant comme valeur par défaut le nom convivial de la commande, comme par exemple "&Ouvrir". Ajoutez enfin la sous-clé HKEY_CLASSES_ROOT/VOTREPROGID/shell/Open/command, en spécifiant comme valeur par défaut le chemin de votre programme (entre guillemets). Ajoutez derrière ce chemin "%1", qui indiquera à Windows d'envoyer, lors de l'ouverture d'un fichier, le chemin du fichier à ouvrir par le biais de la ligne de commande. Ainsi votre programme pourra récupérer ce chemin en utilisant la fonction "Command" (cfr. Question 17). Exemple d'un tel chemin : "C:\WINDOWS\mplayer.exe" "%1".

Il ne vous reste maintenant plus qu'à associer l'extension au PROGID. Pour ce faire, créez la clé HKEY_CLASSES_ROOT/.ext, ext étant l'extension représentant vos fichiers. Comme valeur par défaut pour cette nouvelle clé, entrez le nom du PROGID.

En résumé voici les différentes clés et valeurs à créer :

HKEY_CLASSES_ROOT
    VOTREPROGID
        (Default) = Description du fichier
        DefaultIcon
            (Default) = %ProgramFiles%\VotreProgramme\VotreProgramme.exe,0
        shell
            open
                (Default) = "&Ouvrir"
                command
                    (Default) = "%ProgramFiles%\VotreProgramme\VotreProgramme.exe" "%1"

HKEY_CLASSES_ROOT
    .ext
        (Default) = VOTREPROGID
    .ext-long
        (Default) = VOTREPROGID

Notez qu'il existe toute une série d'autres paramètres permettant de contrôler le comportement de vos fichiers dans l'interface de Windows. Vous trouverez plus d'infos dans la MSDN : Creating a File Association (Shell Programmer's Guide).

Date de publication : 16 septembre 2002
Dernière modification : 05 janvier 2003
Rubriques : Fichiers & dossiers, Windows
Mots-clés : associer, extension, fichiers, base de registre