Estoy creando un archivo por lotes que cifrará información. Lo hice de modo que cuando hago clic derecho en el objeto y hago clic en el botón "probar", se ejecuta el archivo por lotes.
En regedit
agregué
Computer\HKEY_CLASSES_ROOT\*\shell\Test\command
Los datos del comando son
C:\Users\%username%\Desktop\encrypt.bat
¿Qué debo hacer con los datos (en la clave de registro que agregué) y cómo se almacenan en mi variable?
Respuesta1
Debe asociar al tipo de archivo el script que desea ejecutar en ese tipo. En Windows todo esto se basa en la extensión (al menos en XP, no sé si 7, pero dudo que haya cambiado). Digamos que la extensión de sus archivos es ".abc" y su aplicación es:
c:\program files\dummy\process.bat
(Dejé de lado la variable por el momento, no estoy seguro de cómo se comporta en archivos .reg)
Así que simplemente edite un archivo de texto config.reg que contendrá lo siguiente:
Windows Registry Editor Version 5.00
; the extension .abc gets associated with a file type
[HKEY_CLASSES_ROOT\.abc]
@="abc-file"
; the file-type gets a name (that appears in explorer in field "type")
[HKEY_CLASSES_ROOT\abc-file]
@="foo file"
; What will appear in the contextual menu when selecting an .abc file
[HKEY_CLASSES_ROOT\abc-file\shell\cmdname-1]
@="--- Process ! ----"
; What to do with it
; here, %1 is the file given as argument of the script
[HKEY_CLASSES_ROOT\abc-file\shell\cmdname-1\command]
@="\"c:\\program files\\dummy\\process.bat\" \"%1\""
Finalmente importarlo. Ya terminaste.
Comentarios adicionales:
- Todas las comillas y barras invertidas extrañas están ahí para permitir el manejo correcto de nombres con espacios. Sí, ahora nadie tiene espacios en los nombres de los archivos... ¿O sí? De todos modos, ¡eso sucede!
- Por supuesto, puedes tener varios comandos para un tipo de archivo. Simplemente engañe las dos últimas claves del .reg (cmdname-1 ==> cmdname-2)
- También puede asociar diferentes extensiones de archivo al mismo tipo de archivo. por ejemplo, los archivos HTML pueden tener .htm o .html
- Incluso puedes asociar una acción a carpetas. reemplace el tipo de archivo por "carpeta"
- Puede resultar útil proporcionar una función de "desinstalación". Simplemente cree otro archivo de registro y anteponga las claves creadas con '-'.