2010-08-12 39 views
0

Est-il possible d'étendre ou de modifier le comportement de l'Explorateur Windows?Comment puis-je étendre le comportement de l'Explorateur Windows Cliquez sur ou étendre le comportement du shell

Par exemple, je souhaite modifier l'événement click. En cliquant sur un lecteur, je devrais pouvoir me connecter à un serveur FTP au lieu d'ouvrir le lecteur. Le lecteur sera un lecteur monté.

Donc ce que je veux faire est de modifier le comportement par défaut de Windows Explorer Cliquez sur ou étendre le comportement de Shell (je ne suis pas sûr si cela appartient à l'extension shell).

Répondre

1

Hmya, c'est un peu au-delà du "clic". Vous devez écrire une extension shell. Faire cela en C# était tout à fait hors limites jusqu'à .NET 4.0 en raison du problème d'injection de version CLR. Les programmes non gérés (par exemple, Notepad) recevraient le CLR injecté dans eux quand ils utilisent un dialogue de shell, comme FolderBrowser ou OpenFileDialog. Ce qui peut provoquer l'échec du code suivant nécessitant une autre version du CLR. Cela est résolu, CLR 4.0 prend en charge l'opération côte à côte en mémoire de plusieurs versions CLR.

Ce qui n'est pas résolu, c'est la complexité du code que vous devez écrire. Les extensions shell requièrent du code COM. Le genre dur, les interfaces qui dérivent de IUnknown. Pour commencer, vous devez écrire des masses de déclarations pour les interfaces COM. Vous ne pouvez pas les sortir des déclarations SDK, elles ne sont utilisables que par un programme C++. Et il est très sujet aux erreurs, C# ne supporte pas l'héritage multiple, la fonctionnalité dont vous avez besoin pour déclarer les interfaces COM qui sont dérivées d'autres interfaces.

Enfin, le débogage de ce type de code est un cauchemar. C'est un processus Windows essentiel que vous bricolez. Faire une erreur vous laisse avec un shell inutilisable. Le redémarrage démarre le même shell borked.

Eh bien, compétences en ceinture noire requises. J'imaginais que la disponibilité de .NET 4.0 aurait dû déclencher certains projets qui fournissent des wrappers gérés conviviaux. Je n'en ai tout simplement pas encore vu. Prenez cela comme un signe aussi.