Aidez-moi à démarrer avec la création d’un fichier - > menu contextuel avec clic droit dans Vista

StackOverflow https://stackoverflow.com/questions/815483

Question

Je suis un développeur novice .Net 2.0 et 3.5. Je souhaite créer une application qui crée un menu contextuel lorsqu'un fichier est cliqué avec le bouton droit de la souris dans Vista. Après le clic droit - je pense pouvoir comprendre le reste, mais je ne connais pas la technique pour accéder à l'API Vista.

SUIVI:

En lisant certaines des informations auxquelles les gens ont répondu, j’ai constaté que j’en faisais trop ici avec les extensions de coque. Je pense que je peux simplifier beaucoup ce projet si je n’appelais que mon application et transmettais le nom de fichier en tant que paramètre. Cela nécessiterait quand même que mon application apparaisse dans le menu contextuel de l'explorateur lorsque les fichiers avec certaines extensions sont cliqués avec le bouton droit de la souris. Comment puis-je faire cela?

Était-ce utile?

La solution

Avec le risque de paraître inutile, je le déconseillerais dans .Net 2.0 ou 3.5. Comme Brian l'a dit, ce que vous essayez d'implémenter est une extension du shell. Celles-ci sont implémentées en tant que bibliothèques chargées par le shell Vista.

Bien qu’il existe plusieurs didacticiels sur le Web qui donnent des instructions pour les implémenter dans .Net 2.0, ou si peu d’entre eux mentionnent à quel point cette idée est fausse. Si vous faites que le shell Vista charge une extension shell .Net, il est obligé de charger l’ensemble du .NET CLR requis par votre extension shell. Ce qui aggrave encore les choses, c'est que vous ne pouvez charger qu'une seule version du CLR .Net complet en un seul processus. Donc, si vous avez une extension shell qui nécessite .Net 1.0 CLR et que Vista l’a chargée, elle ne peut pas charger le 2.0 CLR requis par votre extension shell.

Il existe également des articles relatifs au débordement de pile. en discutons déjà.

Certaines informations sur implémenter une extension de shell en C ++ non géré (KBCafe PDF , impossible de trouver un simple lien html)

Autres conseils

La chose que vous essayez d'écrire s'appelle une "extension de shell". Je n’en ai jamais écrit, je ne peux donc pas vous donner d’exemple rapide, mais maintenant que vous savez comment on l’appelle, vous pouvez probablement progresser davantage en recherchant des tutoriels sur Google.

Je suis à peu près certain que vous n'êtes pas autorisé à utiliser du code managé pour écrire des extensions de shell pour l'explorateur dans aucune version de Windows. Donc, si vous voulez en écrire un, vous devrez le faire dans un format "traditionnel". langage tel que C ++.

Vous avez besoin d'une extension de shell de menu contextuel / em> , gardez à l’esprit que vous êtes non autorisé à les écrire au format .net (l'ancien blog sur les nouveautés).
Vous pouvez essayer d'écrire une extension en dehors du processus (le squelette n'est pas géré et appelle le service géré via IPC), mais je n'ai vu personne donner cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top