
Quiero crear una opción de menú contextual al hacer clic con el botón derecho en Windows 7 que sea sensible al contexto y pueda pasar el nombre del archivo/carpeta específico a un script de Shell.
Sé que esto debe ser posible; por ejemplo, si tiene un archivo 7zip, puede hacer clic derecho sobre él y luego decir "Extraer aquí" y de alguna manera el destino (el archivo .7z) se pasa al programa 7zip.
En particular, tengo un script que toma un archivo .c, lo mete dentro de una lista de LaTeX y ejecuta pdflatex para crear archivos bien formateados para leer. Sin embargo, tengo que especificar el archivo como argumento de línea de comando. Lo que me gustaría hacer es poder hacer clic derecho en un archivo y ejecutar este script automáticamente, pasando la ruta del destino del clic derecho al argumento de la línea de comando automáticamente.
Respuesta1
¡Bienvenido a Superusuario!
Esto requerirá una edición del registro para lograrlo, y depende de si desea agregar este elemento para todos los archivos, archivos de una extensión específica solamente, carpetas o ambos.
Abra su editor de registro y navegue hasta HKEY_CLASSES_ROOT
. Verá un montón de extensiones de archivos aquí; esto es lo que controla el menú contextual.
Agregar un controlador es el mismo proceso independientemente de a qué esté adjuntando ese elemento del menú, solo importa dónde lo coloque en el registro.
El proceso es el siguiente:
- Cree una nueva clave debajo de la
shell
clave del elemento que está agregando. - Si desea que este elemento del menú tenga un ícono, agregue una cadena denominada
Icon
a la clave que acaba de crear, con una ruta al ícono como valor. - Agregar una clavebajoel elemento que creaste se llama
command
- Modifique la entrada (Predeterminada) debajo de esta clave para que apunte al script que desea abrir, agregando un
"%1"
lugar donde debe ir el nombre del archivo que se pasa al programa en su línea de comando.
¿En cuanto a dónde debería ir este nuevo elemento del menú? Si quieres que se muestre...
- para todos los archivos de una determinada extensión, colóquelos bajo la clave de extensión correspondiente (puede crear una si no existe).
- para todos los archivos en todas partes, colóquelo debajo de la
*
clave - para todos los directorios, colóquelo debajo de la
Directory
clave.