2009-10-12 6 views
7

Je sais comment faire, et j'ai été précédemment à http://www.codeproject.com/KB/vb/VBFileAssociation.aspx. Ma question porte sur ce que cela fait, est-il possible de l'inverser? Que faire si vous ne savez pas où votre programme sera, et vous êtes juste en train de le tester pour l'instant? Est-il possible de "trouver" votre programme, ou un moyen facile de modifier où il est ouvert? D'ailleurs, est-il possible de dire si le fichier a déjà été associé, est-ce un problème à essayer et à réassocier? Enfin, comment pouvez-vous définir le fichier .ico qu'il utilise?Associer des extensions de fichier avec un programme

Merci pour l'aide, je sais presque rien sur le registre et il me embrouille lol ...

Répondre

17

Par souci de concision, j'utilise un faux clé racine. En pratique, remplacez Hive_Key par HKEY_LOCAL_MACHINE pour les paramètres par défaut du système ou HKEY_CURRENT_USER pour les paramètres par utilisateur. Chacune de ces clés est autorisée à exister, ou les deux. Si les deux existent, la clé HKCU a priorité.

Pour associer une extension à un type de fichier, vous devez définir la valeur par défaut de la clé d'extension (Hive_Key\Software\Classes\.ext) avec un type de fichier choisi, en définissant la valeur de clé par défaut.

Le programme actuel lancé, ainsi que d'autres détails de type de fichier, se trouvent dans le type de fichier. Les types de fichiers sont notés par ce que l'on appelle un ProgID (abréviation de "Identificateur de programme", qui est une version plus facilement lisible d'un identificateur de classe). Les clés ProgID se trouvent dans Hive_Key\Software\Classes et un exemple de valeur pour cette illustration peut être ext_auto_key.

Le ProgID peut avoir une valeur par défaut, qui sera la description conviviale du type de fichier dans l'Explorateur (par exemple, "Document Microsoft Word"). C'est à vous de vous assurer que vous choisissez une description facilement compréhensible pour les utilisateurs.

Le ProgID peut avoir une sous-clé, DefaultIcon, où l'icône de type de fichier est stockée. Ce chemin d'icône est la valeur par défaut de cette clé.

La clé ProgID peut contenir une sous-clé, shell, qui contiendra les éléments du menu contextuel sur les fichiers et le programme que cet élément de menu contextuel appellera. Similaire à la valeur par défaut du ProgID, la valeur par défaut de la clé verbale est le texte qui apparaîtra dans le menu contextuel. La valeur par défaut de cette clé shell a le nom de clé verbale par défaut, qui est le verbe invoqué lorsque l'utilisateur double-clique sur un fichier. Ces éléments de menu contextuel sont Verbs. Pour notre exemple, un verbe qui ouvre le fichier avec le Bloc-notes ressemblera à ceci: Hive_Key\Software\Classes\ext_auto_file\shell\open\command avec la valeur par défaut notepad.exe %1.

C'est ici que vous placez votre chemin de programme. Si votre programme est dans le PATH du système, comme notepad.exe est, vous n'avez pas besoin pour spécifier le chemin d'accès complet. Dans le cas le plus probable, vous devez spécifier le chemin d'accès à votre exe. À des fins de test, vous pouvez juste le définir pour être votre répertoire de construction.

Vous avez demandé comment vérifier ce genre de choses, et cela peut être fait en première inspection de la valeur par défaut de la clé d'extension pour obtenir le ProgID, inspecter ensuite la sous-clé shell de la clé ProgID pour obtenir verbe par défaut, l'inspection puis \shell\verb\command à obtenir le chemin vers le programme lancé.

Il peut être instructif d'ouvrir regedit.exe et parcourir ces clés de registre pour d'autres types de fichiers pour avoir une meilleure idée de comment tout cela fonctionne.

De plus, tout ce qui précède est valide si l'extension particulière n'est pas sous contrôle d'un programme défini par défaut (Programmes par défaut) dans le Panneau de configuration. Vous pouvez vérifier ce statut en vérifiant l'existence de la clé HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice. Si c'est le cas, vous devrez révoquer le contrôle des programmes par défaut avant que vos personnalisations entrent en vigueur. Cela peut être fait en supprimant cette sous-clé UserChoice.

+0

Regedit m'effraie un peu lol. Merci pour l'aide! – Cyclone

Questions connexes