Pregunta

Quiero escribir una pequeña herramienta, que hace lo siguiente:

Al hacer clic en un archivo con una determinada extensión de archivo en el menú contextual de Windows Explorer muestra una entrada adicional.

Al hacer clic en esta entrada un cierto EXE se puso en marcha con este archivo como uno de sus parámetros.

Me gustaría utilizar C # /. NET 2.0 para esto. Si no es posible, yo también podría hacerlo con C ++ / Win32.

Mis preguntas son:

  1. ¿Es posible con C # .NET 2.0?
  2. ¿Cuáles son las funciones necesarias para la integración en el menú contextual del Explorador de Windows?
  3. ¿Cómo puedo hacer que este permanente? (No quiero relanzar esta herramienta después de cada arranque)
  4. ¿Qué tengo que tener especial cuidado de? (Sistema operativo diferente, permisos de seguridad, etc.)
¿Fue útil?

Solución

Usted necesitará para acceder al registro y agregar una llave bajo root\\File\\shell o root\Folder\\shell, en función de los elementos que desea la opción de menú visible en.

Trate este artículo en CodeProject , que es bastante útil.

Editar:. Hay otro artículo aquí que puede ser de ayuda

Otros consejos

Es, por cierto, no admite el uso de NET para extensiones de la cáscara, debido a la incapacidad actual para alojar múltiples versiones de tiempo de ejecución en el mismo proceso (.NET 4 se levante esta restricción).

Considere el caso de que usted tiene dos extensiones de la cáscara; uno para .NET 3.5, uno para .NET 1. ¿Qué tiempo de ejecución obtendrá cargado en su proceso? Bueno, es más o menos al azar - que depende el que la extensión de shell se carga en primer lugar. A veces puede ser que sea el tiempo de ejecución 2.0, a veces puede ser el tiempo de ejecución 1.1.

Este es también un problema si un programa .NET crea cuadros de diálogo de archivo comunes; su extensión de la cáscara puede o no puede cargar, y puede o no puede funcionar con la versión de tiempo de ejecución correcta.

Como tal, si vas por la extensión de Shell ruta que debe utilizar nativo C ++ / COM / Win32.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top