直接打开注册表到给定的键?


56

我需要在regedit中打开以下注册表项。

HKLM\Software\Microsoft\Foo\Bar

有没有一种工具可以帮我导航到键,而无需我自己一个个地浏览文件夹?


1
回想一下,我加了2美分,我编写了一个程序来模拟常规粘贴不足时的按键。我为注册表项添加了一种特殊模式,使您可以复制注册表路径,并在Regedit中按热键以使其自动导航到该路径。后来,我编写了一个程序,该程序可以进行一些注册表维护,并且需要提供跳转到路径的功能。我最终让它检测Regedit是否打开;如果是这样,它将发送正确的击键(我从旧程序中复制了该函数),如果没有,则将其写入…Regedit\LastKey,然后打开Regedit;Regedit跳起来。
Synetech 2013年

您可以在Windows反馈应用程序(在Win10上)“ Regedit应该具有地址栏功能”中投票。以下链接仅在Win10 Windows反馈中有效:?contextid = 79&feedbackid = b11f8bdf-eaf4-4799-8e65-5161924ad22c&form = 1&src = 1
Michael Freidgeim

2
Windows 10现在在注册表编辑器中包含地址栏功能。看我的答案。
错误的

Answers:


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 2011年

9
大。现在,如果MS可以提供​​该工具,为什么他们不能简单地修改regedit以允许使用命令行参数?至少win7还没有这个……
BmyGuest

2
请注意,Windows 10要求使用管理特权启动regjump才能正常工作。
弗拉基米尔·雷谢尼科夫

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 2010年

好吧,我喜欢将其作为一种解决方案,因为它具有可扩展性,并讲授了一些基本的脚本。我假设您使用输入框,因为通过命令行运行脚本需要通过脚本主机调用它吗?因此,简单地在命令行中执行类似“ script / key / foo / bar”之类的脚本就不是一件好事吗?
mindless.panda 2010年

我删除了我的评论。两者同时尝试,看看哪一个最简单:-)
Kez

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资源管理器中一样。


我有Windows 10,但没有此地址栏。而且这两个捷径不起作用。
WORMSS

@WORMSS这很奇怪。查看注册表编辑器菜单中是否有Address Bar条目View
错误的

我已经检查过,不,我必须(1)拥有旧版本的RegEdit或(2)计算机上某处有第二个版本,但不在%PATH%上,我已经检查了运行Win10的家用PC主页已经有地址栏了。运行Win10Pro的Work PC具有经典的RegEdit。哦,至少我知道了。
WORMSS

@WORMSS也许Microsoft在创建者更新中添加了地址栏。
错误的

也许,CU在工作中破坏了某些软件,所以我们在那里没有它。。。不知道我的家用PC是否拥有它。
WORMSS

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以便您可以轻松地在新计算机上还原并再次拥有所有收藏夹。
James L.

3

我一直在使用功能强大的宏程序(QWin),主要用于键入常用的东西。QMenu还具有运行应用程序的能力。

当我告诉作者Gary Chanson关于regjump的问题,并询问是否有可能将剪贴板内容作为命令参数传递时,他对其进行了更新,以允许将剪贴板缓冲区的内容作为变量传递;这意味着:

现在,当我将任何密钥复制到剪贴板时,我所要做的就是敲击QMenu的kotkey,然后键入“ J”以直接转到Regedit中的该密钥。

但是,尽管上述方法在XP中有效,但由于操作系统对运行可执行文件的限制,在Win7 / 8中QMenu失败。虽然可以通过将qMenu设置为“以管理员身份运行”来工作,但这需要批准我调用的每个键盘宏。解?将QMenu设置为“运行RegJump的快捷方式”,并将快捷方式设置为“以admin身份运行。(您可以将参数传递给快捷方式,将其传递给它启动的程序)”

如果QMenu听起来很有趣,请访问bevhoward.com/WinTools.htm,找到有关使用它的页面。

请注意,虽然我多年来一直使用Gary的工具,但不同的AV程序已将某些文件标记为受感染...就更新的QMenu而言,它被Avast标记了,但是该问题应该通过解决他们的下一个更新。

希望这些信息有价值。贝弗利·霍华德


欢迎来到超级用户!这是一个很好的答复,但是您介意添加您链接到的页面上的某些信息吗?一切都很好,但是最好在这里-那样,如果您的网站出现故障或更改,问题的答案仍然可用。:)
Thor


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。然后,可以从Windows Vista开始菜单的“开始搜索”框中使用Regjump:

在开始搜索框中输入%REGJUMP%

[您可能需要浏览到regjump.exe的位置,并将regjump.exe设置为在“属性”->“兼容性”选项卡上具有“以管理员身份运行该程序”特权级别。这将确保Regjump在运行有“用户帐户控制”的计算机上正确运行。


或者,将整个Sysinternals Suite添加到路径。以我的经验,这是个好主意。
usr

1

使用Autohotkey加上regjump,您可以定义键盘快捷方式以跳到剪贴板上的关键路径。例:

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

请注意,对于Win7,您需要在regjump.exe的兼容性属性中设置“以管理员身份运行”


1

最简单的方法是使用第三方软件。最有效的一种是Registry key jumper,它是便携式的免费软件。

最有趣的部分是,您不必复制注册表项:只需选择它并使用 CtrlAltX,然后i注册表项位置将自动打开。如果您选择e并键入一些文本,则如果其中有一个注册表项,则注册表项跳线可以自动消除文本并打开密钥位置。


1

如果在批处理文件运行时关闭regedit,则该批处理文件将在Windows 8上为我工作。

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 ++在文本中选择reg路径后转到注册表位置。

下载regjump,解压缩到您的安全位置,创建批处理文件:

C:\ [... regjump.exe的路径...] \ regjump.exe%1

这是实现此目的的方法:

  1. 通过插件,插件管理器安装NppExec。
  2. 然后在NPP中-单击F6(NPP菜单:Plugins / NPP Exec / Execute),添加/保存以下内容:(如果直接调用regjump.exe,它将闪烁,但不打开注册表...,您可以尝试调用它使用带有开关的cmd)
C:\ [...批处理文件的路径...] \ regjump.bat“ $(CURRENT_WORD)”
  1. 保存脚本,输入名称“ RegJump to”
  2. 打开插件/ NPP执行/高级选项...
  3. 在“相关脚本”下的左下方,选择“ RegJump to”
  4. 点击“添加/修改”按钮
  5. 在顶部菜单项“放置到宏子菜单”下检查
  6. 单击“确定”关闭“ NPPExec高级选项”窗口

用法:如果您在Notepad ++中打开了包含注册表路径的文本,请选择此注册表路径,然后单击菜单:'Macro / RegJump to'-如果路径正确,它将在所需位置打开注册表。如果路径不正确,它将在最接近的父路径中打开注册表。

regjump也支持缩写键:HKLM \ Software \ Microsoft

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.