Открыть реестр напрямую по заданному ключу?

35819
lance

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

HKLM\Software\Microsoft\Foo\Bar 

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

48
Чтобы добавить свои 2 ¢, некоторое время назад я написал программу для имитации нажатий клавиш, когда обычного вставки было недостаточно. Я добавил специальный режим для разделов реестра, чтобы вы могли скопировать путь к реестру и нажать горячую клавишу в Regedit, чтобы он автоматически переходил по этому пути. Позже я написал программу, которая выполняла бы некоторые операции с реестром и должна была обеспечивать функцию перехода по пути. Я обнаружил, что Regedit открыт; если это так, он посылает правильные нажатия клавиш (я скопировал функцию из старой программы), а если нет, он пишет в `… Regedit \ LastKey` и открывает Regedit; Regedit прыгает сам. Synetech 10 лет назад 1
Вы можете проголосовать в приложении Windows Feedback (на Win10) «Regedit должен иметь функциональность адресной строки». Следующая ссылка будет работать только в Windows10-обратная связь:? Contextid = 79 & feedbackid = b11f8bdf-eaf4-4799-8e65-5161924ad22c & form = 1 & src = 1 Michael Freidgeim 8 лет назад 0
Windows 10 теперь включает функциональность адресной строки в редакторе реестра. [См. Мой ответ.] (Https://superuser.com/questions/115854/open-registry-directly-to-a-given-key/#1223675) Miscreant 7 лет назад 2

14 ответов на вопрос

59
mindless.panda

Это не может быть сделано с использованием 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 
Прекрасно работает с [Launchy] (http://www.launchy.net/). :) Mateen Ulhaq 12 лет назад 0
Отлично. Теперь, если MS может предоставить инструмент, почему они не могут просто изменить regedit для разрешения параметров командной строки? По крайней мере, в win7 этого еще нет ... BmyGuest 8 лет назад 7
Обратите внимание, что для правильной работы Windows 10 требуется регулярный запуск с правами администратора. Vladimir Reshetnikov 7 лет назад 2
Используйте `regjump -c`, чтобы открыть ключ из буфера обмена. xmedeko 7 лет назад 0
Windows 10 теперь включает функциональность адресной строки в редакторе реестра. [См. Мой ответ.] (Https://superuser.com/questions/115854/open-registry-directly-to-a-given-key/#1223675) Miscreant 7 лет назад 0
12
Kez

Вы можете сделать это, создав простой 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 
Изменение ключа, на который нужно открыть, потребовало бы каждый раз редактировать скрипт, если только он не был указан в качестве аргумента командной строки. Хорошее решение, хотя и очень полезное. mindless.panda 14 лет назад 0
Что ж, мне нравится это решение, потому что оно расширяемое и учит базовым сценариям. Я предполагаю, что вы используете поле ввода, потому что запуск сценария через командную строку требует его вызова через хост сценария? И так, просто сделать что-то вроде «script / key / foo / bar» не является прямым для сценария в командной строке? mindless.panda 14 лет назад 0
Я удалил свои комментарии. Попробуйте оба и посмотрите, что проще :-) Kez 14 лет назад 0
6
Anuresh Kothari

Copy the below text and save it as a batch file and run

@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 the path of the registry key you wish to open when the batch file prompts for it and press Enter and you would be able to open regedit with required registry key path.

Мне пришлось удалить `@ECHO OFF`,
чтобы он работал на Windows 8 steampowered 9 лет назад 0
6
Miscreant

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

Registry Editor's address bar functionality

Так что просто введите или вставьте путь в адресную строку и нажмите 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.

У меня Windows 10, и у меня нет этой адресной строки. И два коротких пути не работают. WORMSS 7 лет назад 0
@ WORMSS Это странно. Проверьте, есть ли у вас запись `Address Bar` в меню` View` редактора реестра. Miscreant 7 лет назад 0
Я проверил, Нет, я должен либо (1) иметь старую версию RegEdit, либо (2) где-то на компьютере есть вторая его версия, но не на% PATH%, я проверил свой домашний компьютер под управлением Win10 Дом уже имеет адресную строку. Рабочий ПК под управлением Win10Pro имеет классический RegEdit. Ну хорошо, по крайней мере, теперь я знаю. WORMSS 7 лет назад 0
@WORMSS Возможно, Microsoft добавила адресную строку в Обновление Создателя. Miscreant 7 лет назад 0
возможно, CU ломает какое-то программное обеспечение на работе, поэтому у нас его там нет ... Понятия не имею, есть ли на моем домашнем ПК .. Никогда не удосужился посмотреть .. Спасибо за помощь. WORMSS 7 лет назад 0
3
Ak.

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

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

Favorites Add to Favorites

3
user285425

I use a powerful macro program (QWin) all of the time, primarily to type frequently used things. QMenu also has the ability to RUN applications.

When I told the author, Gary Chanson, about regjump and asked if it might be possible to pass the clipboard contents as a command argument, he updated it to allow passing the contents of the clipboard buffer as a variable which means;

When I now copy any key to the clipboard, all I have to do is hit the kotkey for QMenu and type "J" to go directly to that key in Regedit.

However, while the above works in XP, in Win7/8 QMenu fails because of the os' restrictions on running executables. While it would work by setting qMenu up as "RUN as admin" that required approving every keyboard macro that I called. Solution? Set QMenu up to RUN a shortcut for RegJump, and set the shortcut up to "RUN as admin. (you can pass an argument to a shortcut which will pass it on to the program it launches)

If QMenu sounds interesting, I have a page about using it at bevhoward.com/WinTools.htm

Note, while I have been using Gary's tools for many years, different AV programs have flagged some of the files as infected... in the case of the updated QMenu, it got flagged by Avast, but the issue is supposed to be resolved with their next update.

Hope that this information is of value. Beverly Howard

Добро пожаловать в Супер пользователя! Это отличный ответ, но не могли бы вы добавить какую-то информацию на страницу, на которую вы ссылались? Это все хорошо и все, но лучше, если он здесь - таким образом, если сайт отключится или изменится, ответ на вопрос все еще доступен. :) Thor 10 лет назад 0
2
therube

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
DaddyBeanDaddyBean

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

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
William Hilsum

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

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

1
Andrew Wyatt

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

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

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

Или добавьте весь Sysinternals Suite к пути. По моему опыту отличная идея. usr 7 лет назад 0

Похожие вопросы