2 votos

Pasar parámetros de opciones a los comandos del menú contextual en el Editor del Registro de Windows

¿Cómo podemos pasar opciones a los programas que se llaman a través de ediciones en el registro de Windows utilizando regedit.exe? Esta es una pregunta de sintaxis por lo que puedo decir.

Por ejemplo... Recientemente he añadido un nuevo programa a mi carpeta Windows/system32 llamado sDelete.exe. Es un programa de borrado seguro disponible en Microsofts sysinternals

http://technet.microsoft.com/en-us/sysinternals/bb897443

De la página web: SDelete implementa el estándar de limpieza y sanitización del Departamento de Defensa DOD 5220.22-M, para darle la confianza de que una vez borrados con SDelete, los datos de sus archivos han desaparecido para siempre. Tenga en cuenta que SDelete elimina de forma segura los datos de los archivos, pero no los nombres de los archivos situados en el espacio libre del disco.

Así que quería añadir una entrada de menú contextual en Windows 7 cuando hago clic derecho en un archivo. Hasta ahora puedo eliminar un programa desde el menú contextual, pero sólo lo llamo sin pasar parámetros de opciones.

  1. windowKey + R: Abre la ventana de ejecución; escribe regedit.exe para abrir el editor del registro
  2. bajar a HKEY_CLASSES_ROOT* \<strkeep>Shell<strkeep>\
  3. Haz una nueva Clave llamada "sDelete: 3 pases"
  4. Haga clic con el botón derecho en la nueva clave y cree otra nueva clave, llámela "comando".
  5. Haga doble clic en (Predeterminado) e introduzca el siguiente comando "c: \\windows\\system32\\sdelete.exe " "%1"

(Actualización: Solución abajo)

En este momento puedo hacer clic con el botón derecho del ratón en un archivo y asegurar su eliminación, pero el valor por defecto es sólo 1 pase. Soy demasiado paranoico para aceptar este comportamiento. Ahora he intentado algunas cosas diferentes para pasar la opción de parámetro que especifica el número de pases que quiero que sDelete realice. Por ejemplo, "-p 3" especificaría tres pasadas.

Sin embargo, no puedo averiguar cómo hacer que esto funcione. Pensé que lo tenía pero luego me di cuenta de que no estaba bien.

¿Cómo podemos pasar parámetros de opción a una llamada a un programa a través de un menú contextual de esta manera?

ACTUALIZACIÓN: EL PROBLEMA ESTÁ EN LA SINTAXIS DE LOS PARÁMETROS.

Me lo imaginé. Estuve haciendo lo que sugeriste, así como diversas variaciones pero nada funcionaba. "-p 3" no funcionaba, me daba un error o se abría una ventana pidiéndome que especificara un programa para abrirlo.

  • Haga doble clic en (Predeterminado) e introduzca el siguiente comando

USE "c: \\windows\\system32\\sdelete.exe " "-p" "3" "%1"

no "c: \\windows\system32\\sdelete.exe " "-p 3" "%1"

y no "c: \\windows\\system32\\sdelete.exe -p 3" "%1"

y no "c: \\windows\\system32\\sdelete.exe -p 3%1"

y no c: \\windows\\system32\\sdelete.exe -p 3%1

Observe que la inclusión de espacios en blanco causa problemas. Esto tiene sentido si en realidad Windows está ignorando los espacios en blanco, pero cuando el espacio se incluye dentro de una cadena el programa sólo está comparando la cadena con una lista limitada predeterminada. Se esperan coincidencias exactas. "-p 3" no es igual a "-p" "3". Cuando se hace coincidir con un parámetro la cadena "-p 3" no hay una opción llamada "p 3". Más bien debemos dar la opción "-p" para decirle al programa que 'escuche' un valor para pasarlo al programa. Si no comienza con el símbolo -, el programa lo interpreta como un nombre de archivo.

Así que separar todos los argumentos que normalmente se analizan de la cadena que se escribe en la entrada de cmd es la manera de inicializarlos correctamente.

0voto

kreemoweet Puntos 2615

Sólo tienes que incluir los parámetros en la línea de comandos que introduces en la clave del registro. La sintaxis de sintaxis depende totalmente del comando que ejecute. Si "-p 3" es lo que quiere SDelete, debería debería funcionar. Consulte la documentación de SDelete si no es así.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: