Abrir registro diretamente para uma determinada chave?

55

Preciso abrir uma chave do Registro, como a seguir no regedit.

HKLM\Software\Microsoft\Foo\Bar

Existe uma ferramenta que navegará até a chave para mim, sem que eu precise navegar pelas pastas pessoalmente, uma a uma?

lança
fonte
1
Para adicionar meus 2 ¢, um tempo atrás, escrevi um programa para simular pressionamentos de tecla quando a colagem regular não era suficiente. Adicionei um modo especial para as chaves do Registro, para permitir que você copie um caminho do Registro e pressione a tecla de atalho no Regedit para que ele navegue automaticamente para esse caminho. Mais tarde, escrevi um programa que faria alguma manutenção no registro e precisava fornecer uma função de ir para o caminho. Acabei detectando se o Regedit está aberto; se assim for, envia as teclas corretas (copiei a função do programa antigo); caso contrário, ele escreveu …Regedit\LastKeye abriu o Regedit; O Regedit salta sozinho.
29513 Synetech
Você pode votar no aplicativo Windows Feedback (no Win10) "O Regedit deve ter a funcionalidade da barra de endereço". O link a seguir irá funcionar apenas em Win10 janelas-feedback:? ContextID = 79 & feedbackid = b11f8bdf-eaf4-4799-8e65-5161924ad22c & form = 1 & src = 1
Michael Freidgeim
2
O Windows 10 agora inclui a funcionalidade da barra de endereço no editor de registro. Veja minha resposta.
precisa

Respostas:

63

Isso não pode ser feito usando- regedit.exese ou qualquer um dos seus parâmetros de linha de comando.

No entanto, a Microsoft oferece regjump.exeum pequeno utilitário (anteriormente da SysInternals) que pode ser usado para abrir o editor de registro em uma chave especificada.

Depois de instalar isso, você pode abrir a chave especificada da seguinte forma:

regjump HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

ou mesmo usando abreviações:

regjump HKCU\Software\Microsoft\Windows

As abreviações disponíveis são:

HKCR - HKEY_CLASSES_ROOT
HKCU - HKEY_CURRENT_USER
HKLM - HKEY_LOCAL_MACHINE
HKU - HKEY_USERS
HKCC - HKEY_CURRENT_CONFIG
mindless.panda
fonte
Funciona muito bem com o Launchy . :)
Mateen Ulhaq
9
Ótimo. Agora, se a MS pode fornecer a ferramenta, por que eles não podem simplesmente modificar o regedit para permitir parâmetros de linha de comando? Pelo menos win7 ainda não tem essa ...
BmyGuest
2
Observe que o Windows 10 exige que o regjump seja iniciado com privilégios administrativos para funcionar corretamente.
Vladimir Reshetnikov
Use regjump -cpara abrir a chave da área de transferência.
xmedeko
O Windows 10 agora inclui a funcionalidade da barra de endereço no editor de registro. Veja minha resposta.
precisa
13

Você pode fazer isso criando um VBScript simples na área de trabalho, sem instalar nenhum software adicional.

O script simplesmente define a chave "último usado" no registro, antes de abri-lo.

Abra o Bloco de notas, cole-o e salve-o como FooBar.vbspor exemplo:

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

Nas propriedades do arquivo .vbs, você pode dizer para não exibir uma caixa preta enquanto está executando o script, para torná-lo um pouco mais organizado.

Se você quiser ser chique, salve o script .vbs em outro lugar e crie um atalho na área de trabalho. Você seria capaz de alterar o ícone e ele pode parecer bonito (se você realmente quiser).

EDIT - Se você quiser ser perguntado sobre qual chave deseja abrir cada vez, aqui está o que você usaria:

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
fonte
Alterar a chave a ser aberta exigiria a edição do script a cada vez, a menos que fosse fornecido como argumento de linha de comando. Solução agradável, porém, muito útil.
mindless.panda
Bem, eu gosto deste como uma solução, porque é extensível e ensina alguns scripts básicos. Suponho que você use uma caixa de entrada porque a execução de um script via linha de comando requer invocá-lo através do host do script? E assim, simplesmente fazer algo como "script / key / foo / bar" não é direto para um script na linha de comando?
mindless.panda
Eu apaguei meus comentários. Tente ambos e ver qual é mais fácil :-)
Kez
11

O Windows 10 agora inclui a funcionalidade da barra de endereço no Editor do Registro:

Funcionalidade da barra de endereço do Editor do Registro

Então, basta digitar ou colar o caminho na barra de endereço e pressionar Enter.


As seguintes abreviações funcionam com a barra de endereço:

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

Portanto, a HKCC - HKEY_CURRENT_CONFIGabreviação não funciona (pelo menos a partir desta data).


Você pode ativar a barra de endereço pressionando Ctrl+Lou Alt+D, assim como no Windows Explorer.

Miscreant
fonte
Eu tenho o Windows 10 e não tenho essa barra de endereço. E os dois atalhos não funcionam.
WORMSS
@WORMSS Isso é estranho. Veja se você tem uma Address Barentrada no Viewmenu do Editor do Registro.
Miscreant
Eu tinha verificado, Não, eu devo (1) ter uma versão antiga do RegEdit ou (2) existe uma segunda versão na máquina em algum lugar, mas não no% PATH%, verifiquei meu PC em casa executando o Win10 A página inicial já possui a barra de endereços. O PC de trabalho executando o Win10Pro possui o RegEdit clássico. Oh, bem, pelo menos agora eu sei.
WORMSS
@WORMSS Talvez a Microsoft tenha adicionado a barra de endereços na Atualização do Criador.
precisa saber é o seguinte
talvez a CU interrompa algum software no trabalho, por isso não o temos lá ... Não faço ideia se o meu PC doméstico o possui .. Nunca se preocupou em procurar .. Obrigado por sua ajuda.
WORMSS
6

Copie o texto abaixo e salve-o como um arquivo em lotes e execute

@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

Digite o caminho da chave do registro que você deseja abrir quando o arquivo em lotes solicitar e pressione Entere você poderá abrir o regedit com o caminho da chave do registro necessário.

Anuresh Kothari
fonte
Eu tinha que remover a @ECHO OFF<br>fazê-lo funcionar no Windows 8
steampowered
4

No RegEdit, você tem a capacidade de marcar caminhos.

No menu superior, escolha

Favorites Add to Favorites

Ak.
fonte
Depois de marcar seus favoritos, faça backup da chave do Registro HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favoritespara que você possa restaurar facilmente em um novo computador e tenha todos os seus favoritos novamente.
James L.
3

Eu uso um poderoso programa de macro ( QWin ) o tempo todo, principalmente para digitar coisas usadas com freqüência. O QMenu também tem a capacidade de EXECUTAR aplicativos.

Quando contei ao autor, Gary Chanson, sobre o regjump e perguntei se seria possível transmitir o conteúdo da área de transferência como um argumento de comando, ele a atualizou para permitir a transmissão do conteúdo do buffer da área de transferência como uma variável, o que significa;

Quando agora copio qualquer tecla para a área de transferência, basta pressionar a tecla kotkey do QMenu e digitar "J" para ir diretamente para essa chave no Regedit.

No entanto, enquanto o descrito acima funciona no XP, o QMenu do Win7 / 8 falha devido às restrições do sistema operacional na execução de executáveis. Embora funcionasse, configure o qMenu como "EXECUTAR como administrador", o que exigia a aprovação de todas as macro de teclado que eu chamei. Solução? Defina QMenu como EXECUTAR um atalho para o RegJump e defina o atalho como "EXECUTAR como administrador. (Você pode passar um argumento para um atalho que o passará para o programa iniciado)

Se o QMenu parecer interessante, tenho uma página sobre como usá-lo em bevhoward.com/WinTools.htm

Observe que, enquanto eu uso as ferramentas de Gary há muitos anos, diferentes programas antivírus sinalizaram alguns arquivos como infectados ... no caso do QMenu atualizado, ele foi sinalizado pelo Avast, mas o problema deve ser resolvido com sua próxima atualização.

Espero que esta informação seja valiosa. Beverly Howard

user285425
fonte
Bem-vindo ao Super Usuário! Essa é uma ótima resposta, mas você se importaria de adicionar algumas das informações que você tem na página que você vinculou? Está tudo bem e tudo, mas é melhor se estiver aqui - dessa forma, se o site for desativado ou alterado, a resposta para a pergunta ainda estará disponível. :)
Thor
2

Nircmd também pode fazê-lo.

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$"

O RegScanner é uma GUI para pesquisar o registro, com a opção de pular para a chave selecionada.

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

therube
fonte
2

Eu tenho um conjunto de serviços representando diferentes instâncias de um pouco de software caseiro; todos os nomes de serviço começam com o nome do software, seguido por alguns detalhes específicos da instância.

ProgramName_Detail1A_Detail1B
ProgramName_Detail2A_Detail2B

As descrições são atualizadas frequentemente, pois o uso pretendido de cada instância muda com o tempo, mas a descrição pode ser alterada apenas no registro. Com isso em mente, o seguinte código .BAT localiza o primeiro serviço "ProgramName *" e abre o regedit com o primeiro serviço já selecionado. (Os nomes dos meus serviços não contêm espaços; se o seu for o caso, será necessária alguma adaptação.)

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

Não há como fazer isso com o Editor do Registro padrão por si só.

No entanto, a Microsoft / Sysinternals possui uma ferramenta chamada Regjump que faz exatamente o que você precisa - iniciando no local correto no editor de registro.

William Hilsum
fonte
1

Uma coisa que você pode considerar fazer se usar o Regjump é configurar uma variável de ambiente, por exemplo REGJUMP = C: \ path \ to \ regjump.exe. Em seguida, você pode usar o Regjump na caixa 'Iniciar pesquisa', por exemplo, no menu Iniciar do Windows Vista:

digitando% REGJUMP% na caixa Iniciar pesquisa

[Pode ser necessário procurar o local do regjump.exe e definir o regjump.exe para ter o nível de privilégio 'Executar este programa como administrador' na guia Propriedades-> Compatibilidade. Isso garantirá que o Regjump funcione corretamente em computadores executando o Controle de Conta de Usuário].

Andrew Wyatt
fonte
Ou adicione todo o Sysinternals Suite ao caminho. Na minha experiência, uma ótima idéia.
usr
1

Com Autohotkey plus regjump , você pode definir um atalho de teclado para ir para um caminho de tecla na área de transferência. Exemplo:

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

Observe que, para o Win7, você precisará definir "Executar isso como administrador" nas propriedades de compatibilidade do regjump.exe

Chris Noe
fonte
1

A maneira mais fácil é usar software de terceiros. O mais eficaz é o jumper de chave do Registro , e é um freeware portátil.

A parte mais interessante é que você não precisa copiar uma chave do registro: basta selecioná-la e usá-la CtrlAltX, ie o local da chave do registro será aberto automaticamente. Se você selecionar ee digitar algum texto, se houver uma chave do Registro, o jumper de chave do Registro poderá eliminar automaticamente o texto e abrirá o local da chave.

Alguém
fonte
1

Esse arquivo em lotes funciona para mim no Windows 8 se o regedit estiver fechado quando o arquivo em lotes for executado.

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
a vapor
fonte
1

Se você precisar usá-lo muito, faz sentido facilitar - você pode combinar o RegJump e o Notepad ++ para ir para o local do registro depois de selecionar o caminho do registro no texto.

Baixe o regjump , descompacte em seu local seguro e crie um arquivo em lote:

C: \ [... caminho para o seu regjump.exe ...] \ regjump.exe% 1

Aqui está como conseguir isso:

  1. Instale o NppExec via Plugins, Plugin Manager.
  2. Em seguida, no NPP - clique em F6 (menu NPP: Plugins / NPP Exec / Execute) adicione / salve o seguinte: (se você chamar regjump.exe diretamente, ele piscará, mas não abrirá o registro ..., você pode tentar chamá-lo usando cmd com switches)
C: \ [... caminho para o seu arquivo em lotes ...] \ regjump.bat "$ (CURRENT_WORD)"
  1. Salvar script, coloque o nome "RegJump to"
  2. abra Plugins / NPP Exec / Advanced Options ...
  3. no canto inferior esquerdo, no menu suspenso 'Associated Script', selecione seu 'RegJump to'
  4. clique no botão 'Adicionar / modificar'
  5. verifique na parte superior dos itens de menu 'Colocar no submenu Macros'
  6. clique em 'OK' para fechar a janela 'NPPExec Advanced Options'

uso : se você tiver um texto aberto no Notepad ++, que contém o caminho do registro, selecione esse caminho e clique em Menu: 'Macro / RegJump to' - ele deve abrir o registro no local necessário, se o caminho estiver correto. se o caminho não estiver correto, ele abrirá o registro no caminho pai mais próximo.

O regjump também suporta chaves abreviadas: HKLM \ Software \ Microsoft

Sasha Bond
fonte