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. 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 HKEY_CLASSES_ROOT 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 |