51

Мне нужно открыть ключ реестра, например, следующий в regedit.

HKLM\Software\Microsoft\Foo\Bar

Есть ли инструмент, который будет переходить к клавише для меня, без необходимости самостоятельно перемещаться по папкам?

14 ответов14

60

Это не может быть сделано с помощью самого regedit.exe или любого из его параметров командной строки.

Однако Microsoft предлагает regjump.exe, небольшую утилиту (ранее SysInternals), которую можно использовать для открытия редактора реестра для указанного ключа.

После установки вы можете открыть указанный ключ, например, так:

regjump HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

или даже используя сокращения:

regjump HKCU\Software\Microsoft\Windows

Доступные сокращения:

HKCR - HKEY_CLASSES_ROOT
HKCU - HKEY_CURRENT_USER
HKLM - HKEY_LOCAL_MACHINE
HKU - HKEY_USERS
HKCC - HKEY_CURRENT_CONFIG
12

Вы можете сделать это, создав простой VBScript на рабочем столе, без установки какого-либо дополнительного программного обеспечения.

Сценарий просто устанавливает ключ "последний использованный" в реестре, а затем открывает его.

Откройте Блокнот, вставьте его в него и сохраните как FooBar.vbs например:

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

В свойствах файла .vbs вы можете указать, чтобы он не отображал черный ящик во время выполнения сценария, чтобы сделать его немного более аккуратным.

Если вы хотите быть модным, вы можете сохранить скрипт .vbs в другом месте и создать для него ярлык на рабочем столе. После этого вы сможете изменить значок, и он может выглядеть красиво (если вы действительно этого хотите).

РЕДАКТИРОВАТЬ - Если вы хотите спросить, какой ключ вы хотите открывать каждый раз, вот что вы использовали бы вместо этого:

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
8

Windows 10 теперь включает функциональность адресной строки в редакторе реестра:

Функциональность адресной строки редактора реестра

Так что просто введите или вставьте путь в адресную строку и нажмите Enter.


Следующие сокращения работают с адресной строкой:

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

Таким образом, сокращение HKCC - HKEY_CURRENT_CONFIG не работает (по крайней мере, на эту дату).


Вы можете активировать адресную строку, нажав Ctrl+L или Alt+D , как в Windows Explorer.

6

Скопируйте приведенный ниже текст и сохраните его как командный файл и запустите

@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

Введите путь к ключу реестра, который вы хотите открыть, когда пакетный файл запросит его, и нажмите Enter, и вы сможете открыть regedit с требуемым путем к ключу реестра.

3

Я все время использую мощную макропрограмму (QWin), прежде всего, для ввода часто используемых вещей. QMenu также имеет возможность запускать приложения.

Когда я рассказал автору, Гэри Шансону, о regjump и спросил, возможно ли передать содержимое буфера обмена в качестве аргумента команды, он обновил его, чтобы разрешить передачу содержимого буфера обмена в виде переменной, что означает;

Теперь, когда я копирую любую клавишу в буфер обмена, все, что мне нужно сделать, - это нажать клавишу kotkey для QMenu и набрать "J", чтобы перейти непосредственно к этой клавише в Regedit.

Однако, хотя вышеперечисленное работает в XP, в Win7/8 QMenu завершается ошибкой из-за ограничений os на запуск исполняемых файлов. Хотя это будет работать, если установить qMenu как "RUN as admin", что потребует утверждения каждого макроса клавиатуры, который я вызывал. Решение? Установите для QMenu значение RUN для ярлыка RegJump и установите для него значение "RUN от имени администратора" (вы можете передать аргумент ярлыку, который передаст его программе, которую он запускает)

Если QMenu звучит интересно, у меня есть страница об использовании этого на bevhoward.com/WinTools.htm

Обратите внимание, что, хотя я использую инструменты Гэри в течение многих лет, различные AV-программы помечали некоторые файлы как зараженные ... в случае обновленного QMenu он был помечен Avast, но проблема должна быть решена с помощью их следующее обновление.

Надеюсь, что эта информация имеет ценность. Беверли Ховард

3

В RegEdit у вас есть возможность отмечать пути.

В верхнем меню выберите

Избранное Добавить в избранное

2

Nircmd тоже может это сделать.

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 - это графический интерфейс для поиска в реестре с возможностью перехода к выбранному ключу.

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

2

У меня есть набор служб, представляющих различные экземпляры немного собственного программного обеспечения; имена сервисов начинаются с названия программного обеспечения, за которым следуют определенные подробности конкретного экземпляра.

ProgramName_Detail1A_Detail1B
ProgramName_Detail2A_Detail2B

Описания часто обновляются, поскольку предполагаемое использование каждого экземпляра со временем меняется, но описание можно изменить только в реестре. Имея это в виду, следующее.BAT-код находит первую службу «ProgramName *» и открывает regedit с этой первой выбранной службой. (Мои сервисные имена не содержат пробелов; если у вас есть, потребуется некоторая адаптация.)

@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
1

Если вам приходится часто его использовать, имеет смысл облегчить его - вы можете комбинировать RegJump и Notepad++, чтобы перейти в папку реестра после выбора пути reg в тексте.

Загрузите regjump, разархивируйте в безопасное место, создайте командный файл:

C:\[...path to your regjump.exe...]\regjump.exe %1

Вот как это сделать:

  1. Установите NppExec через плагины, менеджер плагинов.
  2. Затем в NPP - нажмите F6 (меню NPP: Plugins/NPP Exec/Execute) добавьте / сохраните следующее: (если вы вызываете regjump.exe напрямую, он будет мигать, но не откроет реестр ..., вы можете попытаться вызвать его используя cmd с переключателями)
C:\[...path to your batch file...]\regjump.bat "$(CURRENT_WORD)"
  1. Сохраните скрипт, поставьте имя "RegJump to"
  2. открыть плагины /NPP Exec / дополнительные параметры ...
  3. в левом нижнем углу под "Связанный скрипт" выберите "RegJump to"
  4. нажмите кнопку «Добавить / Изменить»
  5. проверьте в верхнем меню пункты "Поместить в подменю макросов"
  6. нажмите "ОК", чтобы закрыть окно "Дополнительные параметры NPPExec"

Использование: если у вас открыт текст в Notepad++, который содержит путь к реестру, выберите этот путь к реестру и нажмите в меню: «Macro /RegJump to» - он должен открыть реестр в нужном месте, если путь указан правильно. если путь неверен, он откроет реестр в ближайшем родительском пути.

regjump также поддерживает сокращенные ключи: HKLM\Software\Microsoft

1

Если вы используете Regjump , вы можете подумать о том, чтобы установить переменную среды, например, REGJUMP = C:\path\to\regjump.exe. Затем вы можете использовать Regjump из поля «Начать поиск», скажем, в меню «Пуск» Windows Vista:

введите% REGJUMP% в поле Начать поиск

[Возможно, вам потребуется перейти к местоположению regjump.exe и настроить для regjump.exe уровень привилегий «Запускать эту программу от имени администратора» на вкладке «Свойства» -> «Совместимость». Это обеспечит правильную работу Regjump на компьютерах с управлением учетными записями пользователей].

1

Этот пакетный файл работает для меня в Windows 8, если regedit закрывается при запуске пакетного файла.

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
1

Самый простой способ - использовать стороннее программное обеспечение. Наиболее эффективным является перемычка ключа реестра, и это портативное бесплатное программное обеспечение.

Самое интересное, что вам не нужно копировать раздел реестра: просто выберите его и используйте Ctrl Alt X, тогда я и местоположение раздела реестра будут открыты автоматически. Если вы выберете e и введете какой-то текст, если внутри находится раздел реестра, перемычка разделов реестра может автоматически удалить текст и откроет расположение ключа.

1

С Autohotkey плюс regjump вы можете определить сочетание клавиш для перехода к ключевому пути в буфере обмена. Пример:

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

Обратите внимание, что для Win7 вам нужно установить "Запускать от имени администратора" в свойствах Compatibilty regjump.exe

1

Это невозможно сделать с помощью стандартного редактора реестра.

Тем не менее, Microsoft/Sysinternals имеет инструмент под названием Regjump, который делает именно то, что вам нужно - запуск в нужном месте в редакторе реестра.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .