Abrir registro directamente a una clave dada?

57

Necesito abrir una clave de registro como la siguiente en regedit.

HKLM\Software\Microsoft\Foo\Bar

¿Existe alguna herramienta que me permita acceder a la tecla sin que yo tenga que navegar por las carpetas una por una?

lanza
fuente
1
Para agregar mis 2 ¢, hace un tiempo, escribí un programa para simular pulsaciones de teclas para cuando el pegado regular no era suficiente. Agregué un modo especial para claves de registro que le permite copiar una ruta de registro y presionar la tecla de acceso rápido mientras está en Regedit para que navegue automáticamente a esa ruta. Más tarde, escribí un programa que haría un mantenimiento del registro y necesitaba proporcionar una función de salto a ruta. Terminé haciéndolo detectar si Regedit está abierto; si es así, envía las teclas correctas (copié la función del programa anterior), y si no, escribió …Regedit\LastKeyy abrió Regedit; Regedit salta sobre sí mismo.
Synetech
Puede votar en la aplicación de comentarios de Windows (en Win10) "Regedit debería tener la funcionalidad de barra de direcciones". El siguiente enlace solo funcionará en Win10 windows-feedback:? Contextid = 79 & feedbackid = b11f8bdf-eaf4-4799-8e65-5161924ad22c & form = 1 & src = 1
Michael Freidgeim
2
Windows 10 ahora incluye la funcionalidad de la barra de direcciones en el editor de registro. Mira mi respuesta.
Malhechor

Respuestas:

64

Esto no se puede hacer usando uno regedit.exemismo o cualquiera de sus parámetros de línea de comando.

Sin embargo, Microsoft ofrece regjump.exeuna pequeña utilidad (anteriormente de SysInternals) que se puede usar para abrir el editor de registro en una clave específica.

Una vez que instale esto, puede abrir la clave especificada así:

regjump HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

o incluso usando abreviaturas:

regjump HKCU\Software\Microsoft\Windows

Las abreviaturas disponibles son:

HKCR - HKEY_CLASSES_ROOT
HKCU - HKEY_CURRENT_USER
HKLM - HKEY_LOCAL_MACHINE
HKU - HKEY_USERS
HKCC - HKEY_CURRENT_CONFIG
mindless.panda
fuente
Funciona muy bien con Launchy . :)
Mateen Ulhaq
99
Excelente. Ahora, si MS puede proporcionar la herramienta, ¿por qué no pueden simplemente modificar regedit para permitir parámetros de línea de comando? Al menos win7 aún no tiene esto ...
BmyGuest
2
Tenga en cuenta que Windows 10 requiere que regjump se inicie con privilegios administrativos para funcionar correctamente.
Vladimir Reshetnikov
1
Use regjump -cpara abrir la llave desde el portapapeles.
xmedeko
Windows 10 ahora incluye la funcionalidad de la barra de direcciones en el editor de registro. Mira mi respuesta.
Malhechor
13

Puede hacer esto creando un VBScript simple en su escritorio, sin instalar ningún software adicional.

El script simplemente establece la clave del "último uso" en el registro, antes de abrirlo.

Abra el Bloc de notas, pegue esto y guárdelo como, FooBar.vbspor ejemplo:

Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey","HKLM\Software\Microsoft\Foo\Bar","REG_SZ"
WshShell.Run "regedit", 1,True
Set WshShell = Nothing

En las propiedades del archivo .vbs, puede indicarle que no muestre un cuadro negro mientras ejecuta el script, para que esté un poco más ordenado.

Si desea ser elegante, puede guardar el script .vbs en otro lugar y crear un acceso directo en su escritorio. Entonces podrá cambiar el ícono y puede verse bonito (si realmente lo desea).

EDITAR: si desea que se le pregunte qué clave desea abrir cada vez, esto es lo que usaría en su lugar:

Set WshShell = CreateObject("WScript.Shell")
Dim JumpToKey
JumpToKey=Inputbox("Which registry key would you like to open?")
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey",JumpToKey,"REG_SZ"
WshShell.Run "regedit", 1,True
Set WshShell = Nothing
Kez
fuente
Cambiar la clave a abrir requeriría editar el script cada vez, a menos que se proporcione como un argumento de línea de comando. Buena solución, muy útil.
mindless.panda
Bueno, me gusta esta como solución porque es extensible y enseña algunos scripts básicos. ¿Supongo que usa un cuadro de entrada porque ejecutar un script a través de la línea de comandos requiere invocarlo a través del host del script? Entonces, ¿simplemente hacer algo como "script / key / foo / bar" no es directo para un script en la línea de comando?
mindless.panda
Borré mis comentarios. Probar ambos y ver cuál es más fácil :-)
Kez
12

Windows 10 ahora incluye la funcionalidad de la barra de direcciones en el Editor del Registro:

Funcionalidad de la barra de direcciones del Editor del registro

Tan solo escriba o pegue la ruta en la barra de direcciones y presione Entrar.


Las siguientes abreviaturas funcionan con la barra de direcciones:

HKCR - HKEY_CLASSES_ROOT
HKCU - HKEY_CURRENT_USER
HKLM - HKEY_LOCAL_MACHINE
HKU - HKEY_USERS

Entonces la HKCC - HKEY_CURRENT_CONFIGabreviatura no funciona (al menos a partir de esta fecha).


Puede activar la barra de direcciones presionando Ctrl+Lo Alt+D, al igual que en el Explorador de Windows.

Sinvergüenza
fuente
Tengo Windows 10 y no tengo esta barra de direcciones. Y los dos atajos no funcionan.
WORMSS
@WORMSS Eso es raro. Vea si tiene una Address Barentrada en el Viewmenú del Editor del Registro.
Malhechor el
Lo revisé, No, debo (1) tener una versión anterior de RegEdit o (2) hay una segunda versión en la máquina en algún lugar pero no en el% PATH%, revisé la PC de mi casa con Win10 Inicio ya tiene la barra de direcciones. La PC de trabajo que ejecuta Win10Pro tiene RegEdit clásico. Oh bueno, al menos ahora lo sé.
WORMSS
@WORMSS Quizás Microsoft agregó la barra de direcciones en la Actualización del creador.
Malhechor
tal vez, CU interrumpe algún software en el trabajo, por lo que no lo tenemos allí ... No tengo idea si mi PC en casa lo tiene ... Nunca me molesté en mirar ... Gracias por su ayuda.
WORMSS
6

Copie el texto a continuación y guárdelo como un archivo por lotes y ejecute

@ECHO OFF & setlocal
SET /P "showkey=Please enter the path of the registry key: "
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v "LastKey" /d "%showkey%" /f 
start "" regedit

Ingrese la ruta de la clave de registro que desea abrir cuando el archivo por lotes lo solicite y presione Entery podrá abrir regedit con la ruta de clave de registro requerida.

Anuresh Kothari
fuente
Tuve que quitar el @ECHO OFF<br>para que funcionara en Windows 8
impulsado por vapor el
4

En RegEdit tienes la capacidad de marcar rutas.

En el menú superior elige

Favorites Add to Favorites

Alaska.
fuente
Una vez que haya marcado sus favoritos, HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favoriteshaga una copia de seguridad de la clave de registro para que pueda restaurar fácilmente en una nueva computadora y tener todos sus favoritos nuevamente.
James L.
3

Uso un poderoso programa macro ( QWin ) todo el tiempo, principalmente para escribir cosas que se usan con frecuencia. QMenu también tiene la capacidad de EJECUTAR aplicaciones.

Cuando le conté al autor, Gary Chanson, sobre el regjump y le pregunté si sería posible pasar el contenido del portapapeles como un argumento de comando, lo actualizó para permitir pasar el contenido del búfer del portapapeles como una variable que significa;

Cuando ahora copio cualquier tecla al portapapeles, todo lo que tengo que hacer es presionar la tecla Kot para QMenu y escribir "J" para ir directamente a esa tecla en Regedit.

Sin embargo, aunque lo anterior funciona en XP, en Win7 / 8 QMenu falla debido a las restricciones del sistema operativo para ejecutar ejecutables. Si bien funcionaría configurando qMenu como "EJECUTAR como administrador" que requería aprobar cada macro de teclado que llamé. ¿Solución? Configure QMenu para EJECUTAR un acceso directo para RegJump y establezca el acceso directo en "EJECUTAR como administrador. (Puede pasar un argumento a un acceso directo que lo pasará al programa que inicia)

Si QMenu suena interesante, tengo una página sobre cómo usarlo en bevhoward.com/WinTools.htm

Tenga en cuenta que, aunque he estado usando las herramientas de Gary durante muchos años, diferentes programas AV han marcado algunos de los archivos como infectados ... en el caso del QMenu actualizado, Avast lo marcó, pero se supone que el problema se resuelve con Su próxima actualización.

Espero que esta información sea de valor. Beverly Howard

usuario285425
fuente
¡Bienvenido a Super User! Esa es una gran respuesta, pero ¿le importaría agregar parte de la información que tiene en la página a la que se vinculó? Todo está bien, pero es mejor si está aquí; de esa manera, si su sitio baja o cambia, la respuesta a la pregunta aún está disponible. :)
Thor
2

Nircmd también puede hacerlo.

http://www.nirsoft.net/utils/nircmd.html

 Open the desired Registry key/value in RegEdit
 nircmd.exe regedit "HKLM\Software\Microsoft\Windows\CurrentVersion" "CommonFilesDir"

 Open the Registry key that you copied to the clipboard in RegEdit
 nircmd regedit "~$clipboard$"

RegScanner es una GUI para buscar en el registro, con la opción de saltar a la clave seleccionada.

http://www.nirsoft.net/utils/regscanner.html

Therube
fuente
2

Tengo un conjunto de servicios que representan diferentes instancias de un poco de software de cosecha propia; Todos los nombres de servicio comienzan con el nombre del software, seguido de ciertos detalles específicos de la instancia.

ProgramName_Detail1A_Detail1B
ProgramName_Detail2A_Detail2B

Las descripciones se actualizan con frecuencia ya que el uso previsto de cada instancia cambiará con el tiempo, pero la descripción solo se puede cambiar en el registro. Con eso en mente, el siguiente código .BAT encuentra el primer servicio "ProgramName *" y abre regedit con ese primer servicio ya seleccionado. (Los nombres de mis servicios no contienen espacios; si los suyos lo hacen, se requerirá alguna adaptación).

@echo off
setlocal

set __first=
for /f "tokens=5 delims=\" %%i in ('reg query HKLM\system\currentcontrolset\services /f ProgramName*') do call :findfirst %%i

if "%__first%" == "" (
  echo No ProgramName entries found in registry. Aborting...
  pause
  goto :EOF
)

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit /v LastKey /d Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\%__first% /f

start regedit

goto :EOF

:findfirst
if "%__first%" == "" set __first=%1

goto :EOF
DaddyBeanDaddyBean
fuente
1

No hay forma de hacerlo con el Editor de registro estándar por sí solo.

Sin embargo, Microsoft / Sysinternals tiene una herramienta llamada Regjump que hace exactamente lo que necesita: iniciarse en el lugar correcto en el editor de registro.

William Hilsum
fuente
1

Una cosa que podría considerar hacer si usa Regjump es configurar una variable de entorno, por ejemplo REGJUMP = C: \ path \ to \ regjump.exe. Luego puede usar Regjump desde el cuadro 'Iniciar búsqueda' en, digamos, el menú Inicio de Windows Vista:

escribiendo% REGJUMP% en el cuadro Iniciar búsqueda

[Es posible que deba buscar la ubicación de regjump.exe y configurar regjump.exe para que tenga el nivel de privilegio 'Ejecutar este programa como administrador' en la pestaña Propiedades-> Compatibilidad. Esto asegurará que Regjump funcione correctamente en las computadoras que funcionan con el Control de cuentas de usuario].

Andrew Wyatt
fuente
O bien, agregue toda la Suite Sysinternals a la ruta. En mi experiencia, una gran idea.
Usr
1

Con Autohotkey plus regjump , puede definir un atajo de teclado para saltar a una ruta clave en el portapapeles. Ejemplo:

^!+k::
  Run path\regjump.exe %clipboard%
  return

Tenga en cuenta que para Win7 deberá configurar "Ejecutar esto como administrador" en las propiedades de compatibilidad de regjump.exe

Chris Noe
fuente
1

La forma más fácil es usar software de terceros. El más efectivo es el puente de clave del Registro , y es un programa gratuito portátil.

La parte más interesante es que no tiene que copiar una clave de registro: simplemente selecciónela y úsela CtrlAltX, iy la ubicación de la clave de registro se abrirá automáticamente. Si selecciona ey escribe texto, si hay una clave de registro dentro, el puente de clave de registro puede eliminar automáticamente el texto y abrirá la ubicación de la clave.

Alguien
fuente
1

Este archivo por lotes funciona para mí en Windows 8 si regedit está cerrado cuando se ejecuta el archivo por lotes.

showkey=Please enter the path of the registry key:
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v "LastKey" /d "%showkey%" /f 
start regedit
vapor accionado
fuente
1

Si tiene que usarlo mucho, tiene sentido hacerlo más fácil: puede combinar RegJump y Notepad ++ para ir a su ubicación de registro después de seleccionar la ruta de registro en el texto.

Descarga regjump , descomprime en tu ubicación segura, crea un archivo por lotes:

C: \ [... ruta a su regjump.exe ...] \ regjump.exe% 1

Aquí es cómo lograr esto:

  1. Instale NppExec a través de complementos, Administrador de complementos.
  2. Luego, en NPP, haga clic en F6 (menú NPP: Plugins / NPP Exec / Execute) agregue / guarde lo siguiente: (si llama directamente a regjump.exe, parpadeará, pero no abrirá el registro ..., puede intentar llamarlo usando cmd con interruptores)
C: \ [... ruta a su archivo por lotes ...] \ regjump.bat "$ (CURRENT_WORD)"
  1. Guardar script, poner nombre "RegJump a"
  2. Abra Plugins / NPP Exec / Opciones avanzadas ...
  3. en la parte inferior izquierda debajo del menú desplegable 'Script asociado' seleccione su 'RegJump to'
  4. haga clic en el botón 'Agregar / Modificar'
  5. marque debajo de los elementos superiores del menú 'Submenú Place to the Macros'
  6. haga clic en 'Aceptar' para cerrar la ventana 'Opciones avanzadas de NPPExec'

uso : si tiene un texto abierto en Notepad ++ que contiene la ruta de registro, seleccione esta ruta de registro y haga clic en Menú: 'Macro / RegJump to' - debería abrir el registro en la ubicación necesaria, si la ruta es correcta. Si la ruta no es correcta, se abrirá el registro en la ruta principal más cercana.

regjump también admite claves abreviadas: HKLM \ Software \ Microsoft

Sasha Bond
fuente