8
votes

Comment ajouter de nouveaux éléments à un clic droit sur l'événement sur les dossiers et les fichiers sous Windows?

J'ai fait google Couple de tutoriels sur Google.

Je suis capable d'ajouter un élément de menu contextuel à un dossier fort> en faisant ceci: p>

[HKEY_CLASSES_ROOT\Directory\shell\Command]
@="TestRightClick:"

[HKEY_CLASSES_ROOT\Directory\shell\Command\Command]
@="myExecutable.exe %L"


0 commentaires

4 Réponses :


3
votes
    Les fichiers
  1. ont des menus contextuels par extension. Ajoutez vos clés de registre de commande à l'extension appropriée ou à HKEY_CLASSES_ROOT \ * pour affecter tous les fichiers.
  2. Vous pouvez utiliser% 1 pour transmettre le nom de fichier à l'application (beaucoup comme vous l'avez indiqué avec% l ci-dessus). Si vous sélectionnez plusieurs fichiers, chacun sera appelé séparément, comme si vous avez cliqué sur le bouton droit de la souris individuellement.

    Je ne suis pas au courant d'un moyen simple de passer plusieurs articles à partir d'un menu contextuel de clic droit sur une instance exécutable.


2 commentaires

@ 2. Toute suggestion sur la façon d'éviter de faire appel à mon application plusieurs fois et de passer toujours dans plusieurs chemins de fichiers. Peut-être avec un filetage?


Quelque plus de détails pour cette solution: j'ai ajouté une clé à HKEY_CLASSES_ROOT * \ shell \ TestRightClick puis j'ai ajouté la clé de commande HKEY_CLASSES_ROOT * \ shell \ TestRightClick \ Commande après mon exécutable à une chaîne par défaut



7
votes

Le mot clé que vous recherchez est des "verbes" ou "manipulateurs" pas "événements".

Les verbes de menu contextuels pour des extensions de fichier particuliers peuvent être placés sous le PROGID pour le type de fichier, la touche de type perçue (si le type de fichier a un type perçu), la touche AllFileSystemObjects ou la clé de classe de base (*). < / p>

Notez que l'écriture à ces clés dans le HKEY_CLASSES_ROOT Hive redirigera les écrivies sur HKEY_LOCAL_MACHINE \ CLABLED \ CLASSES et nécessitera des privilèges élevés. Si vous écrivez sur le HKEY_CURRENT_USER \ Software \ classes \ classes arborescence, vous pouvez le faire avec des droits d'utilisateur standard.

C'est à vous de gérer un scénario où plusieurs fichiers sont sélectionnés. Une instance de votre candidature sera lancée par fichier que vous avez sélectionné. Vous pouvez résoudre ce problème en vérifiant si une autre instance de votre application est en cours d'exécution et en utilisant la communication inter-processus pour notifier à l'instance existante que d'autres extensions ont été sélectionnées.

sur MSDN, assurez-vous de lire


1 commentaires

C'est une bonne réponse aussi, mais pas assez spécifique. Merci.



10
votes

Vous pouvez le faire avec mon programme SingleInstance . Aucune extension de coquille impliquée. xxx


1 commentaires

J'ai essayé vos solutions .. j'ai téléchargé singleinstance.exe après créer la commande avec votre valeur définie. Mais j'ai Windows ne peut pas accéder au périphérique, au chemin ou au fichier spécifié. Vous n'avez peut-être pas l'autorisation appropriée d'accéder à l'article. Cette erreur.



0
votes

voir GITUB SIMEFERRER"> GITUB SIMEINSTANCEACCUMULATEUR pour une mise en œuvre C # de l'approche du putex + copyData bien porté. Autre Stack-O's exprimant le besoin. p>

menu contextuel de l'explorateur Config h2> xxx pré>

FileType code> ci-dessus avec vlc.mov code> p>

Exemple h3> Remplacer " * Voir les exemples de ligne de commande * strong>" ci-dessus avec la ligne de commande souhaitée.
Remarque: citations strong> & Variables d'environnement strong> doit être échappée et s'échapper du travail légèrement différemment pour la commande initiale par rapport à la suite dans la chaîne !?! P>
param(
  [String[]]$filesList
)

$filesList | % { $_ }

pause


0 commentaires