2009-10-13 17 views
7

¿Cómo se conectan herramientas como SVN y Git al Explorador de Windows, de modo que agregan opciones al menú contextual y agregan el tic/signo de exclamación en función de si se ha editado un archivo?Complementos de Windows Explorer

(no estoy después de Git o SVN información específica - Yo sólo les sirvan de ejemplo)

Respuesta

3

DLL Explorer permite a registrarse como extensiones de la cáscara . Una extensión de shell puede proporcionar elementos del menú contextual, superposiciones de iconos y muchas otras características. Hace esto al exponer ciertas interfaces COM que Explorer llama, p. antes de mostrar un menú o icono. Aquí está el MSDN home page for shell extensibility, aunque por extraño que parezca que las cosas sobre los menús contextuales y las superposiciones de iconos ya no existen, es posible que tengas que probar el SDK fuera de línea en Win32 y COM Development | Interfaz de usuario | Experiencia de usuario de Windows | Shell de Windows | Guía del desarrollador de Shell | Integración de aplicaciones en el Shell.

1

Según la extensión de shell que desee, pueden ser bastante complejas de implementar. No sé lo que estás buscando, para escribir rápidamente una buena extensión, o para entrar en detalles y aprender todo sobre esto. Si no están tan preocupados con el cómo, y sólo tienen algunas ideas que desea implementar, echa un vistazo a esta biblioteca para escribir extensiones de la cáscara ...

EZShellExtensions MFC
EZShellExtensions.NET

Hay una gran cantidad de diferentes tipos:
- Menús contextuales
- Páginas de propiedades
- Icon Manipuladores
y muchos más ...

También tienen otra biblioteca para escribir extensiones de espacios de nombres (cosas que se muestran en el panel del árbol del Explorador de Windows).

+1

estás enlazando a la edición .NET de ese marco. ¡Nunca, nunca uses eso! Nunca, nunca escriba una extensión de shell en .NET. Aquí está el por qué: http://blogs.msdn.com/oldnewthing/archive/2006/12/18/1317290.aspx – Stefan

+0

Dato interesante. No había pensado en eso. Supongo que esto puede o no ser un problema dependiendo de su público objetivo. Si escribe para una audiencia bien controlada (por ejemplo, cómo los sitios de Intranet pueden orientar solo JUST IE e ignorar otros navegadores) puede que no sea un problema, pero para publicación pública es un buen punto a tener en cuenta. Actualicé mi respuesta para incluir la versión de MFC. – eidylon

+1

No es un problema de IE frente a otros navegadores. El problema es que cada aplicación que usa complementos puede romperse. Imagine una aplicación nativa que utiliza complementos COM, y uno de esos complementos COM está escrito en .NET. Si la aplicación utilizó un cuadro de diálogo abrir/guardar archivo antes de que necesite cargar el complemento, ese complemento puede no cargarse debido a que otro .NET runtime ya se ha cargado debido a esa mala extensión del shell. En realidad, ni siquiera es necesario usar un diálogo de abrir/guardar archivo: incluso algunas funciones de shell "normales" como SHGetFileInfo() suelen funcionar. Y sí, tengo una aplicación que se rompe si tales extensiones de shell están instaladas – Stefan

Cuestiones relacionadas