Ajouter un élément de menu au menu contextuel de windows uniquement pour un type de fichier spécifique

j'ai développé une application qui charge une image en utilisant le menu contextuel de window (clic droit sur le fichier) et pour le moment fonctionne, mais la touche reg est activée""

HKEY_CLASSES_ROOT*

et il fonctionne avec tous les fichiers.

je veux que l'élément de menu dans le menu contextuel devrait être affiché uniquement avec .les fichiers jpg.

comment je peux faire ça? Quelles clés de registre utiliser?

Merci d'avance.

37
demandé sur Sein Kraft 2010-01-23 19:12:21

2 réponses

1) Identifier le type de fichier (ProgID) pour .fichiers jpg

cela peut être fait en cochant la valeur par défaut de HKEY_CLASSES_ROOT\.jpg . Il peut s'agir de n'importe quoi basé sur ce que vous avez installé, mais pour les besoins de cet exemple, nous l'appellerons jpegfile , un défaut courant.

2) Définir les propriétés du menu contextuel (verbe) pour ce type de fichier

vous pouvez définir par utilisateur éléments du menu contextuel dans HKEY_CURRENT_USER\Software\Classes\jpegfile\shell . Cette clé a une liste de verbes pour le type de fichier. Il y a une clé similaire dans HKEY_LOCAL_MACHINE\Software\Classes\jpegfile\shell , et ce sont les valeurs par défaut du système pour le type de fichier. Vous pouvez mettre une clé de verbe là aussi, mais si la même clé existe dans HKCU, elle sera annulée, alors soyez avisé.

3) Définissez la valeur de commande

la valeur de la clé bare minimum qui doit être réglée pour qu'elle fonctionne est la valeur par défaut de la command sous-clé. Vous devez définir cela avec le chemin vers votre application, comme ceci: HKEY_CURRENT_USER\Software\Classes\jpegfile\shell\open_with_myapp\command serait défini à "c:\path\to\myapp.exe" "%1" . Maintenant, un menu contextuel .les fichiers jpg auront un élément" open_with_myapp " qui lancera votre application Une fois cliqué, et passera le nom du fichier sélectionné comme paramètre. Bien sûr, comment vos paramètres de processus d'application sont à vous, donc vous avez besoin de définir la chaîne de paramètres à quelque chose que votre application peut traiter.

4) assortiment autres verbe propriétés

j'imagine que vous allez probablement vouloir que l'élément du menu contextuel Lise quelque chose d'un peu plus convivial que le nom clé. Vous pouvez avoir le menu contextuel afficher quelle que soit l'étiquette que vous voulez pour votre article en définissant la valeur par défaut de cette clé ( open_with_myapp ).

c'est votre vue d'ensemble de base. Vérifiez certainement ma réponse à cette question sur le fait d'associer un fichier, qui a une réponse similaire:

70
répondu Factor Mystic 2017-05-23 10:31:34

il y a une autre clé sur le Registre qui fonctionne indépendamment des programmes par défaut de l'utilisateur: HKEY_CLASSES_ROOT\SystemFileAssociations . Puisque personne ne l'a mentionné sur cette question... Pas besoin de vérifier le programme avant d'ajouter l'élément de menu contextuel. Exemple:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\subtitle]
@="Search subtitles..."

[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\subtitle\command]
@="\"D:\Tools\subsearch.exe\" \"%1\""

référence: https://msdn.microsoft.com/en-us/library/windows/desktop/ee872121 (v=vs 85).aspx#reg_verbs

5
répondu andromeda947 2018-06-23 19:13:12