1

Salutations, tousPrévenir C# dll d'être chargé pour certaines applications

j'ai une extension de barre d'outils shell écrit en C#. Il est uniquement destiné à être utilisé dans Windows Explorer, je veux donc empêcher le chargement de la DLL dans Internet Explorer. Windows fournit des tonnes de manières de charger des extensions dans IE seulement, mais apparemment aucune manière de faire l'explorateur seulement. Je sais qu'il existe différentes vérifications que je pourrais effectuer à différents endroits après le chargement de la DLL, mais l'idéal serait d'empêcher le chargement de la DLL.

Maintenant, si elle était écrite en C++, j'appellerais GetModuleFileName en DllMain, vérifie si l'exécutable était iexplore.exe, et renvoie false sur attach si c'est le cas. Mais il n'y a pas DllMain en C#; Microsoft ne nous fait pas confiance pour jouer avec le verrouillage du chargeur. Y at-il un autre moyen que je peux empêcher de manière sélective une DLL C# de se charger?

Répondre

0

Ne pas faire Handlers Shell Extension dans .NET http://blogs.msdn.com/b/junfeng/archive/2005/11/18/494572.aspx

+0

Non pertinent ... La raison pour laquelle un conseil a été donné était que faire des extensions shell dans .NET pouvait provoquer un problème d'injection CLR pour les programmes non gérés utilisant des boîtes de dialogue shell. Les extensions écrites dans différentes versions de CLR peuvent entrer en conflit les unes avec les autres. Mais ce n'est pertinent que pour des choses comme les gestionnaires de menus contextuels, ou d'autres extensions qui pourraient être utilisées dans les boîtes de dialogue de shell. Les barres d'outils ne sont chargées que par deux applications: Windows Explorer et Internet Explorer. Et pas seulement cela, .NET prend désormais en charge le fonctionnement côte à côte en mémoire de plusieurs versions de CLR, ce qui est complètement obsolète maintenant. –

+0

Je ne me rendais pas compte qu'il était obsolète, Merci – Arjang

0

Section 3: Enregistrement de notre AppBar http://www.codeproject.com/KB/shell/csdoesshell3.aspx?print=true

je devais envoyer celui-ci dans un poste distinct en tant que nouvel utilisateur ne peut pas envoyer plus d'un lien dans un message.

+0

Le lien que vous avez fourni traite des AppBars, qui sont complètement différents des barres d'outils de l'Explorateur (anciennement appelé DeskBands). AppBars charge seulement dans Explorer, pas IE, donc ils ne sont pas vraiment pertinents à mon problème ... –

+0

Merci Paul, j'ai essayé de voir si je peux trouver une clé de registre pertinente en utilisant autoruns qui va enregistrer une barre d'outils Explorer uniquement pour Windows Explorer mais pas encore de chance, Est-ce que quelqu'un sait qu'il n'y a AUCUN moyen d'utiliser le registre pour enregistrer une barre d'outils Explorer uniquement pour Explorer? – Arjang

Questions connexes