Відкрити реєстр безпосередньо до заданого ключа?


56

Мені потрібно відкрити ключ реєстру, наприклад, наступний в regedit.

HKLM\Software\Microsoft\Foo\Bar

Чи є інструмент, який буде переходити до ключа для мене, без того, щоб мені самостійно орієнтуватися в папках?


1
Щоб додати свої 2 ¢, я написав програму для імітації натискань клавіш, коли регулярного вставки недостатньо. Я додав спеціальний режим для ключів реєстру, щоб ви могли скопіювати шлях до реєстру та натиснути швидку клавішу, перебуваючи в Regedit, щоб він автоматично перейшов до цього шляху. Пізніше я написав програму, яка б виконала певне обслуговування реєстру і була потрібна для забезпечення функції переходу до шляху. Зрештою, він виявив, чи Regedit відкритий; якщо так, він надсилає правильні натискання клавіш (я скопіював функцію зі старої програми), а якщо ні, він написав …Regedit\LastKeyі відкрив Regedit; Регедіт стрибає сам.
Synetech

Ви можете голосувати в додатку для зворотного зв’язку Windows (у програмі Win10) "Regedit повинен мати функціональність адресного рядка". Наступне посилання працюватиме лише у Windows-10-зворотній зв'язок Win10:? Contextid = 79 & feedbackid = b11f8bdf-eaf4-4799-8e65-5161924ad22c & form = 1 & src = 1
Майкл Фрейджім

2
Тепер Windows 10 включає функцію адресного рядка в редакторі реєстру. Дивіться мою відповідь.
Зловмисний

Відповіді:


64

Це неможливо зробити за допомогою 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 . :)
Mateen Ulhaq

9
Чудово. Тепер, якщо MS може надати інструмент, чому вони не можуть просто змінити regedit, щоб дозволити параметри командного рядка? Принаймні у win7 цього ще немає ...
BmyGuest

2
Зауважте, що для роботи системи Windows 10 потрібен режим перезавантаження з адміністративними правами.
Володимир Решетніков

1
Використовуйте, regjump -cщоб відкрити ключ із буфера обміну.
xmedeko

Тепер Windows 10 включає функцію адресного рядка в редакторі реєстру. Дивіться мою відповідь.
Непристойний

13

Це можна зробити, створивши простий 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

Ну, мені це подобається як рішення, оскільки воно розширюється і вчить деяким базовим сценаріям. Я припускаю, що ви використовуєте поле введення, оскільки для запуску сценарію через командний рядок потрібно викликати його через хост сценарію? І тому просто робити щось на кшталт "script / key / foo / bar" не є прямим передумом для сценарію в командному рядку?
mindless.panda

Я видалив свої коментарі. Спробуйте обидва і подивіться, що найпростіше :-)
Кез

11

Тепер 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.


У мене Windows 10, і у мене немає цього адресного рядка. І два скорочення не працюють.
РОБОТИ

@WORMSS Це дивно. Перевірте, чи є у вас Address Barзапис в Viewменю Редактора реєстру.
Різний

Я перевірив, Ні, я повинен (1) мати стару версію RegEdit або (2) є друга версія його на машині десь, але не на% PATH%, я перевірив свій домашній ПК під управлінням Win10 Додому вже є адресний рядок. Робочий ПК під управлінням Win10Pro має класичний RegEdit. Ну добре, принаймні зараз я знаю.
РОБОТИ

@WORMSS Можливо, Microsoft додав адресний рядок у оновлення Creator.
Різний

можливо, CU ламає деяке програмне забезпечення на роботі, тому у нас його немає ... Не маю уявлення, чи є у мене домашній ПК .. Ніколи не заважав шукати .. Дякую за допомогу.
РОБОТИ

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 з необхідним шляхом до ключа реєстру.


Мені довелося зняти, @ECHO OFF<br>щоб він працював на Windows 8
підключений на парі

4

У RegEdit у вас є можливість закладки шляхів.

У верхньому меню виберіть

Favorites Add to Favorites


Після того, як ви вибрали закладки у вибране, створіть резервну копію ключа реєстру, HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favoritesщоб ви могли легко відновити на новому комп’ютері знову всі ваші обрані.
Джеймс Л.

3

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

Коли я розповів автору, Гері Чансону, про регюмп і запитав, чи можна передавати вміст буфера обміну як аргумент команди, він оновив його, щоб дозволити передавати вміст буфера буфера як змінну, що означає;

Коли я зараз копіюю будь-який ключ до буфера обміну, все, що мені потрібно зробити, це натиснути kotkey для QMenu і ввести "J", щоб перейти безпосередньо до цього ключа в Regedit.

Однак, хоча вищезазначене працює в XP, у Win7 / 8 QMenu виходить з ладу через обмеження ОС для запуску виконуваних файлів. Хоча це буде працювати, встановивши qMenu вгору "RUN як адміністратор", що вимагає затвердження кожного макросу клавіатури, який я викликав. Рішення? Встановіть QMenu до RUN ярлик для RegJump і встановіть ярлик на "RUN як адміністратор. (Ви можете передати аргумент на ярлик, який передасть його програмі, яку він запускає).

Якщо QMenu звучить цікаво, у мене є сторінка про його використання на сайті bevhoward.com/WinTools.htm

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

Сподіваємось, що ця інформація є цінною. Беверлі Говард


Ласкаво просимо до Супер Користувача! Це чудова відповідь, але чи не заперечуєте ви додати частину інформації, яку ви маєте на сторінці, на яку ви пов’язали? Це все добре і все, але найкраще, якщо він є тут - саме так, якщо ви перейдете на сайт або зміниться, відповідь на питання все ще доступний. :)
Тор

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

Неможливо зробити це самостійно зі стандартним редактором реєстру.

Однак у Microsoft / Sysinternals є інструмент під назвою Regjump, який робить саме те, що вам потрібно - запустивши на потрібне місце в редакторі реєстру.


1

Одне, що ви можете розглянути, якщо використовувати Regjump, це налаштувати змінну середовища, наприклад REGJUMP = C: \ path \ to \ regjump.exe. Тоді ви можете використовувати Regjump у вікні "Почати пошук", скажімо, у меню "Пуск Windows Vista":

набравши% REGJUMP% у полі Почати пошук

[Вам може знадобитися перейти до місця розташування regjump.exe і встановити regjump.exe, щоб мати "Запустити цю програму як адміністратор" Рівень привілеїв на вкладці Властивості-> Сумісність. Це забезпечить правильність роботи Regjump на комп’ютерах, що працюють з управлінням облікових записів користувачів].


Або додайте цілий сюїт для Sysinternals до шляху. На мій досвід чудова ідея.
usr

1

З AutoHotkey плюс regjump , ви можете визначити комбінацію клавіш для переходу до ключового шляху в буфері обміну. Приклад:

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

Зауважте, що для Win7 вам потрібно буде встановити "Запустити це як адміністратор" у властивості сумісності regjump.exe


1

Найпростіший спосіб - використання стороннього програмного забезпечення. Найефективнішим є перемикач ключа реєстру , і це портативна безкоштовна програма.

Найцікавіша частина полягає в тому, що вам не потрібно копіювати ключ реєстру: просто виберіть його та використовуйте CtrlAltX, тоді iі розташування ключа реєстру буде відкрито автоматично. Якщо ви виберете eі введете якийсь текст, якщо всередині є ключ реєстру, перемикач ключа реєстру може автоматично усунути текст і відкриє місце розташування ключа.


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

Якщо вам доведеться використовувати його багато, має сенс зробити це простіше - ви можете комбінувати RegJump і Notepad ++, щоб перейти до свого реєстру після вибору шляху реґу в тексті.

Завантажте regjump , розпакуйте в безпечне місце і створіть пакетний файл:

C: \ [... шлях до вашого regjump.exe ...] \ regjump.exe% 1

Ось як цього досягти:

  1. Встановіть NppExec через плагіни, Менеджер плагінів.
  2. Тоді в АЕС - клацніть F6 (меню NPP: Плагіни / NPP Exec / Execute) додайте / збережіть наступне: (якщо ви зателефонуєте regjump.exe безпосередньо, він миготить, але не відкриє реєстр ..., ви можете спробувати викликати його за допомогою cmd з перемикачами)
C: \ [... шлях до вашого пакетного файлу ...] \ regjump.bat "$ (CURRENT_WORD)"
  1. Збережіть сценарій, поставте ім'я "RegJump в"
  2. відкрити плагіни / NPP Exec / Додаткові параметри ...
  3. внизу зліва в розділі "Асоційований сценарій" виберіть "RegJump до"
  4. натисніть кнопку "Додати / змінити"
  5. перевірте вгорі пункти меню "Місце в підменю Макроси"
  6. натисніть "ОК", щоб закрити вікно "Розширені параметри NPPExec"

використання : якщо у вас є відкритий текст у Блокноті ++, який містить шлях до реєстру, виберіть цей шлях до реєстру та натисніть Меню: "Макрос / RegJump до" - він повинен відкрити реєстр у потрібному місці, якщо шлях правильний. якщо шлях невірний, він відкриє реєстр у найближчому батьківському шляху.

regjump також підтримує скорочені клавіші: HKLM \ Software \ Microsoft

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.