Registry direkt zu einem bestimmten Schlüssel öffnen?

57

Ich muss einen Registrierungsschlüssel wie den folgenden in regedit öffnen.

HKLM\Software\Microsoft\Foo\Bar

Gibt es ein Tool, das für mich zum Schlüssel navigiert, ohne dass ich selbst nacheinander in den Ordnern navigieren muss?

Lanze
quelle
1
Um meine 2 ¢ hinzuzufügen, habe ich vor einiger Zeit ein Programm geschrieben, um Tastendrücke zu simulieren, für die das regelmäßige Einfügen nicht ausreichte. Ich habe einen speziellen Modus für Registrierungsschlüssel hinzugefügt, mit dem Sie einen Registrierungspfad kopieren und den Hotkey in Regedit drücken können, damit er automatisch zu diesem Pfad navigiert. Später schrieb ich ein Programm, das einige Registry-Wartungsarbeiten durchführte und eine Funktion zum Wechseln zum Pfad bereitstellen musste. Es wurde festgestellt, ob Regedit geöffnet ist. Wenn ja, sendet es die richtigen Tastenanschläge (ich habe die Funktion aus dem alten Programm kopiert), und wenn nicht, schrieb es an …Regedit\LastKeyund öffnete Regedit. Regedit springt von selbst.
Synetech
Sie können in der Windows-Feedback-App (unter Win10) "Regedit sollte über eine Adressleistenfunktion verfügen" abstimmen. Der folgende Link funktioniert nur in Win10 Windows-Feedback:? Contextid = 79 & feedbackid = b11f8bdf-eaf4-4799-8e65-5161924ad22c & form = 1 & src = 1
Michael Freidgeim
2
Windows 10 enthält jetzt Adressleistenfunktionen im Registrierungseditor. Siehe meine Antwort.
Miscreant

Antworten:

64

Dies kann nicht mit sich regedit.exeselbst oder einem seiner Befehlszeilenparameter durchgeführt werden.

Microsoft bietet jedoch regjump.exeein kleines Dienstprogramm (zuvor von SysInternals) an, mit dem der Registrierungseditor für einen bestimmten Schlüssel geöffnet werden kann.

Sobald Sie dies installiert haben, können Sie den angegebenen Schlüssel wie folgt öffnen:

regjump HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

oder auch mit Abkürzungen:

regjump HKCU\Software\Microsoft\Windows

Verfügbare Abkürzungen sind:

HKCR - HKEY_CLASSES_ROOT
HKCU - HKEY_CURRENT_USER
HKLM - HKEY_LOCAL_MACHINE
HKU - HKEY_USERS
HKCC - HKEY_CURRENT_CONFIG
mindless.panda
quelle
Funktioniert hervorragend mit Launchy . :)
Mateen Ulhaq
9
Toll. Wenn MS das Tool bereitstellen kann, warum können sie dann nicht einfach regedit ändern, um Befehlszeilenparameter zuzulassen? Zumindest win7 hat dies noch nicht ...
BmyGuest
2
Beachten Sie, dass für Windows 10 der Start von regjump mit Administratorrechten erforderlich ist, um ordnungsgemäß zu funktionieren.
Vladimir Reshetnikov
1
Verwenden Sie regjump -c, um den Schlüssel aus der Zwischenablage zu öffnen.
Xmedeko
Windows 10 enthält jetzt Adressleistenfunktionen im Registrierungseditor. Siehe meine Antwort.
Miscreant
13

Sie können dies tun, indem Sie ein einfaches VBScript auf Ihrem Desktop erstellen, ohne zusätzliche Software zu installieren.

Das Skript legt einfach den "zuletzt verwendeten" Schlüssel in der Registrierung fest, bevor es ihn öffnet.

Öffne Notepad, stecke es hinein und speichere es wie FooBar.vbszum Beispiel:

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

In den Eigenschaften für die .vbs-Datei können Sie festlegen, dass beim Ausführen des Skripts keine Blackbox angezeigt werden soll, um das Skript übersichtlicher zu gestalten.

Wenn Sie ausgefallen sein möchten, können Sie das .vbs-Skript an einer anderen Stelle speichern und eine Verknüpfung auf Ihrem Desktop erstellen. Sie könnten dann das Symbol ändern und es könnte hübsch aussehen (wenn Sie es wirklich wollten).

BEARBEITEN - Wenn Sie gefragt werden möchten, welchen Schlüssel Sie jedes Mal öffnen möchten, verwenden Sie stattdessen Folgendes:

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
quelle
Wenn Sie den zu öffnenden Schlüssel ändern, muss das Skript jedes Mal bearbeitet werden, es sei denn, es wurde als Befehlszeilenargument angegeben. Gute Lösung, sehr nützlich.
mindless.panda
Nun, ich mag diese als Lösung, weil sie erweiterbar ist und einige grundlegende Skripte lehrt. Ich gehe davon aus, dass Sie ein Eingabefeld verwenden, weil zum Ausführen eines Skripts über die Befehlszeile dieses über den Skripthost aufgerufen werden muss. Und wenn Sie einfach so etwas wie "script / key / foo / bar" machen, ist das für ein Skript auf der Kommandozeile kein einfacher Weg?
mindless.panda
Ich habe meine Kommentare gelöscht. Probieren Sie beide aus und finden Sie heraus, was am einfachsten ist :-)
Kez
12

Windows 10 enthält jetzt Adressleistenfunktionen im Registrierungseditor:

Adressleistenfunktionalität des Registrierungseditors

Geben oder fügen Sie den Pfad einfach in die Adressleiste ein und drücken Sie die Eingabetaste.


Die folgenden Abkürzungen funktionieren mit der Adressleiste:

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

Die HKCC - HKEY_CURRENT_CONFIGAbkürzung funktioniert also nicht (zumindest ab diesem Datum).


Sie können die Adressleiste wie im Windows Explorer durch Drücken von Ctrl+Loder aktivieren Alt+D.

Bösewicht
quelle
Ich habe Windows 10 und diese Adressleiste fehlt. Und die beiden Abkürzungen funktionieren nicht.
WORMSS
@WORMSS Das ist komisch. Überprüfen Sie, ob Sie einen Address BarEintrag im ViewMenü des Registrierungseditors haben.
Miscreant
Ich hatte es überprüft, Nö, ich muss entweder (1) eine alte Version von RegEdit haben oder (2) es gibt eine zweite Version davon irgendwo auf dem Computer, aber nicht auf dem% PATH%. Ich habe meinen Heim-PC überprüft, auf dem Win10 läuft Zuhause hat die Adressleiste bereits. Der Arbeits-PC mit Win10Pro verfügt über das klassische RegEdit. Na ja, zumindest weiß ich es jetzt.
WORMSS
@WORMSS Möglicherweise hat Microsoft die Adressleiste im Creator's Update hinzugefügt.
Miscreant
Vielleicht bricht CU eine Software bei der Arbeit, so dass wir sie dort nicht haben ... Keine Ahnung, ob mein Heim-PC sie hat. Ich habe mich nie darum gekümmert, nachzuschauen. Vielen Dank für Ihre Hilfe.
WORMSS
6

Kopieren Sie den folgenden Text, speichern Sie ihn als Batch-Datei und führen Sie ihn aus

@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

Geben Sie den Pfad des Registrierungsschlüssels ein, den Sie öffnen möchten, wenn die Batch-Datei dazu auffordert, und drücken EnterSie, um regedit mit dem erforderlichen Registrierungsschlüsselpfad zu öffnen.

Anuresh Kothari
quelle
Ich musste das entfernen @ECHO OFF<br>, damit es unter Windows 8
funktioniert
4

In RegEdit können Sie Pfade mit Lesezeichen versehen.

Wählen Sie im oberen Menü

Favorites Add to Favorites

Ak.
quelle
Wenn Sie Ihre Favoriten mit einem Lesezeichen versehen haben, sichern Sie den Registrierungsschlüssel, HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favoritesdamit Sie problemlos auf einem neuen Computer wiederherstellen können, wenn Sie wieder alle Favoriten haben.
James L.
3

Ich benutze die ganze Zeit ein leistungsfähiges Makro-Programm ( QWin ), um hauptsächlich häufig verwendete Dinge zu tippen. QMenu kann auch Anwendungen ausführen.

Als ich dem Autor Gary Chanson von Regjump erzählte und fragte, ob es möglich sei, den Inhalt der Zwischenablage als Befehlsargument zu übergeben, aktualisierte er ihn, um den Inhalt des Zwischenablagepuffers als Variable zu übergeben, was bedeutet;

Wenn ich jetzt einen Schlüssel in die Zwischenablage kopiere, muss ich nur den Kotkey für QMenu drücken und "J" eingeben, um direkt zu diesem Schlüssel in Regedit zu gelangen.

Während das oben Genannte in XP funktioniert, schlägt QMenu in Win7 / 8 aufgrund der Einschränkungen des Betriebssystems für die Ausführung von ausführbaren Dateien fehl. Es funktionierte zwar, indem qMenu auf "RUN as admin" gesetzt wurde, was die Genehmigung jedes von mir aufgerufenen Tastaturmakros erforderte. Lösung? Setzen Sie QMenu auf RUN, um eine Verknüpfung für RegJump zu erstellen, und setzen Sie die Verknüpfung auf "RUN als Administrator" (Sie können ein Argument an eine Verknüpfung übergeben, die es an das gestartete Programm weitergibt).

Wenn QMenu interessant klingt, habe ich eine Seite über die Verwendung unter bevhoward.com/WinTools.htm

Hinweis: Während ich Garys Tools seit vielen Jahren verwende, haben verschiedene AV-Programme einige der Dateien als infiziert markiert. Im Fall des aktualisierten QMenu wurde dies von Avast markiert, aber das Problem soll mit behoben werden ihr nächstes Update.

Hoffe, dass diese Informationen von Wert sind. Beverly Howard

user285425
quelle
Willkommen bei Super User! Das ist eine großartige Antwort, aber würde es Ihnen etwas ausmachen, einige der Informationen hinzuzufügen, die Sie auf der Seite haben, auf die Sie verlinkt haben? Es ist alles gut und alles, aber es ist am besten, wenn es hier ist - auf diese Weise ist die Antwort auf die Frage immer noch verfügbar, falls Ihre Website ausfällt oder sich ändert. :)
Thor
2

Nircmd kann das auch.

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 ist eine grafische Benutzeroberfläche zum Durchsuchen der Registrierung mit der Option, zum ausgewählten Schlüssel zu springen.

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

therube
quelle
2

Ich habe eine Reihe von Diensten, die verschiedene Instanzen einer selbst entwickelten Software darstellen. Die Dienstnamen beginnen alle mit dem Namen der Software, gefolgt von bestimmten instanzspezifischen Details.

ProgramName_Detail1A_Detail1B
ProgramName_Detail2A_Detail2B

Die Beschreibungen werden regelmäßig aktualisiert, da sich die beabsichtigte Verwendung der einzelnen Instanzen im Laufe der Zeit ändert. Die Beschreibung kann jedoch nur in der Registrierung geändert werden. In diesem Sinne findet der folgende .BAT-Code den ersten "ProgramName *" - Dienst und öffnet regedit mit dem ersten bereits ausgewählten Dienst. (Meine Servicenamen enthalten keine Leerzeichen. Andernfalls ist eine Anpassung erforderlich.)

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

Dies ist mit dem Standard-Registrierungseditor allein nicht möglich.

Microsoft / Sysinternals verfügt jedoch über ein Tool namens Regjump , das genau das tut, was Sie benötigen - es wird an der richtigen Stelle im Registrierungseditor gestartet.

William Hilsum
quelle
1

Wenn Sie Regjump verwenden , können Sie eine Umgebungsvariable einrichten, z. B. REGJUMP = C: \ path \ to \ regjump.exe. Dann können Sie Regjump über das Feld "Suche starten" beispielsweise im Windows Vista-Startmenü verwenden:

Geben Sie% REGJUMP% in das Feld Suche starten ein

[Möglicherweise müssen Sie zum Speicherort von regjump.exe navigieren und regjump.exe so einstellen, dass auf der Registerkarte Eigenschaften-> Kompatibilität die Berechtigungsstufe "Dieses Programm als Administrator ausführen" festgelegt ist. Dadurch wird sichergestellt, dass Regjump auf Computern mit Benutzerkontensteuerung ordnungsgemäß funktioniert.

Andrew Wyatt
quelle
Oder fügen Sie dem Pfad die gesamte Sysinternals Suite hinzu. Nach meiner Erfahrung eine tolle Idee.
USR
1

Mit Autohotkey plus Regjump können Sie eine Tastenkombination definieren, um zu einem Schlüsselpfad in der Zwischenablage zu springen. Beispiel:

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

Beachten Sie, dass Sie für Win7 in den Kompatibilitätseigenschaften von regjump.exe "Als Administrator ausführen" festlegen müssen

Chris Noe
quelle
1

Am einfachsten ist es, Software von Drittanbietern zu verwenden. Am effektivsten ist der Registrierungsschlüssel-Jumper , und es ist eine tragbare Freeware.

Der interessanteste Teil ist, dass Sie keinen Registrierungsschlüssel kopieren müssen: Wählen Sie ihn einfach aus und verwenden Sie CtrlAltX, dann iwird der Speicherort des Registrierungsschlüssels automatisch geöffnet. Wenn Sie eText auswählen und eingeben und sich darin ein Registrierungsschlüssel befindet, kann der Registrierungsschlüssel-Jumper den Text automatisch entfernen und den Schlüsselspeicherort öffnen.

Jemand
quelle
1

Diese Batchdatei funktioniert unter Windows 8, wenn regedit geschlossen wird, wenn die Batchdatei ausgeführt wird.

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
dampfbetrieben
quelle
1

Wenn Sie es häufig verwenden müssen, ist es sinnvoll, es zu vereinfachen - Sie können RegJump und Notepad ++ kombinieren, um zu Ihrem Registrierungsspeicherort zu gelangen, nachdem Sie den Registrierungspfad im Text ausgewählt haben.

Laden Sie regjump herunter , entpacken Sie es an Ihren sicheren Ort und erstellen Sie eine Batch-Datei:

C: \ [... Pfad zu Ihrer regjump.exe ...] \ regjump.exe% 1

So erreichen Sie das:

  1. Installieren Sie NppExec über Plugins, Plugin Manager.
  2. Dann in NPP - klicken Sie auf F6 (NPP-Menü: Plugins / NPP Exec / Execute), um Folgendes hinzuzufügen / zu speichern: (Wenn Sie regjump.exe direkt aufrufen, wird es flashen, aber die Registrierung nicht öffnen ..., können Sie versuchen, es aufzurufen Verwenden von cmd mit Schaltern
C: \ [... Pfad zu Ihrer Batch-Datei ...] \ regjump.bat "$ (CURRENT_WORD)"
  1. Skript speichern, Name "RegJump to" setzen
  2. Plugins / NPP Exec / Erweiterte Optionen öffnen ...
  3. Wählen Sie unten links unter "Associated Script" Ihr "RegJump to" aus.
  4. Klicken Sie auf "Hinzufügen / Ändern"
  5. siehe oben Menüpunkte 'In das Untermenü Makros wechseln'
  6. Klicken Sie auf "OK", um das Fenster "Erweiterte NPPExec-Optionen" zu schließen

Verwendung : Wenn in Notepad ++ Text geöffnet ist, der den Registrierungspfad enthält, wählen Sie diesen Registrierungspfad aus und klicken Sie im Menü auf "Macro / RegJump to" (Makro / RegJump to). Wenn der Pfad korrekt ist, sollte die Registrierung am gewünschten Speicherort geöffnet werden. Wenn der Pfad nicht korrekt ist, wird die Registrierung im nächsten übergeordneten Pfad geöffnet.

regjump unterstützt auch abgekürzte Schlüssel: HKLM \ Software \ Microsoft

Sasha Bond
quelle