J'ai découvert comment ajouter des éléments du menu contextuel du clic droit à des fichiers sur l'Explorateur Windows, en ajoutant des clés au registre. C'est-à-dire que je peux cliquer avec le bouton droit sur un fichier dans l'Explorateur et exécuter une application personnalisée sur ce fichier.
J'aimerais faire la même chose pour un dossier et je n'ai pas (encore) trouvé de moyen de le faire. Je vois des articles sur la création / l'écriture de gestionnaires de menus contextuels personnalisés, mais je préfère ne pas y aller.
J'ai trouvé un article ici sur la façon d'ajouter des éléments de menu contextuel en cascade au bureau et à l '"ordinateur" dans l'explorateur, mais cela ne fonctionne pour aucun dossier.
Je voudrais pouvoir ajouter mon application personnalisée au menu contextuel et la faire fonctionner à la fois sur les fichiers et les dossiers. Existe-t-il un moyen de le faire sans écrire un gestionnaire de menu contextuel?
J'ai trouvé la solution dans l'article ci-dessous, qui décrit comment faire cela via le registre pour les fichiers, ainsi que pour les dossiers:
Les deux articles suivants fournissent des informations et des options supplémentaires:
la source
Réponses:
Dans l'éditeur d'enregistrement (
regedit.exe
), recherchez:Menu contextuel pour faire un clic droit sur les dossiers dans le panneau gauche de l'Explorateur Windows ou sur l'arrière-plan d'un répertoire dans le panneau droit:
HKEY_CLASSES_ROOT\Directory\Background\shell
si vous êtes administrateurHKEY_CURRENT_USER\Software\Classes\directory\Background\shell
si vous êtes un utilisateur normalMenu contextuel pour un clic droit sur les dossiers dans le panneau droit de l'Explorateur Windows:
HKEY_CLASSES_ROOT\Directory\shell
si vous êtes administrateurHKEY_CURRENT_USER\Software\Classes\directory\shell
si vous êtes un utilisateur normalMenu contextuel pour n'importe quel fichier:
HKEY_CLASSES_ROOT\*\shell
si vous êtes administrateurHKEY_CURRENT_USER\Software\Classes\*\shell
si vous êtes un utilisateur normalDans tous les cas:
shell
, en la nommant comme vous voulez nommer l'élément de menu contextuelcommand
(nom obligatoire)default
propriété danscommand
pourmyprogrampath\path\path\executable.exe %1
transmettre le chemin du fichier et le nom du fichier sélectionné à votre programme personnaliséPlus de personnalisation:
icon
pour la clé créée à l'étape 1 avec une valeur correspondant à un chemin de ressource d'icône. Vous pouvez également fournir des arguments entiers pour spécifier l'icône à utiliser. Exemple:%SystemRoot%\System32\shell32.dll,3
Extended
pour la clé créée à l'étape 1Position
avec l'un des éléments suivantsTop
:,Bottom
la source
HKEY_CLASSES_ROOT\Directory\Background\shell
ne peut affecter que le clic droit sur l'arrière-plan d'un répertoire"%1"
au cas où le chemin comporte des espaces.Command
?%1
par%V
.Je suis retourné et j'ai également répondu à cela dans un autre sujet car il ne semble pas y avoir beaucoup sur cette question en particulier.
J'ai trouvé que le moyen le plus simple était d'ajouter une valeur de chaîne à la clé appelée "AppliesTo" et de définir sa valeur sur "under: {path}"
Dans mon exemple, je veux qu'il ne regarde que dans le lecteur T, donc ma valeur de chaîne est "AppliesTo": "under: T:".
En C #, ceci est facilement accompli avec ce qui suit:
la source
Nous avons trouvé une solution plus propre, plus simple et plus rapide: créez un fichier texte, remplissez-le de ce contenu, mettez-le à jour selon vos besoins, enregistrez-le avec le suffixe .reg et lancez-le (il n'a pas besoin de privilèges d'administrateur car il accède à la partie utilisateur du registre ):
De cette façon, vous pouvez également avoir une sauvegarde de votre configuration: il suffit de sauvegarder le fichier .reg dans un endroit sûr. Si vous modifiez manuellement le registre après avoir lancé le fichier, cliquez avec le bouton droit de la souris et sélectionnez «exporter».
Méfiez-vous des doubles espaces arrière dans le chemin: \\
la source
La seule bonne solution que j'ai trouvée vraiment fonctionnelle est: /superuser/1097054/shell-context-menu-registry-extension-doesnt-work-when-default-program-is-other
Ajoutez des clés dans HKEY_CLASSES_ROOT \ SystemFileAssociations \ your.extension \ shell \ command Modifiez la dernière clé avec la commande que vous voulez faire.
Pour mon objectif c'était:
Si j'exporte le, j'obtiens un .reg:
la source
Ouvrez l'invite de commande [exécutez en tant qu'administrateur] et exécutez cette commande
Pour plus de détails sur plus de fonctionnalités, exécutez: -
la source