-->

quinta-feira, 3 de julho de 2008

Como abrir regedit.exe em uma chave específica

Se você é um power user (a maior parte dos leitores deste blog é) deve usar muito regedit.exe para inspecionar ou fazer alterações no Registro do Windows e por esse motivo já deve ter sentido falta de um jeito de fazer o Editor do Registro se lembrar das chaves que você consulta mais. Ou mesmo de um jeito de entrar com uma chave através de copiar e colar.

Regedit.exe apenas se lembra da última chave visitada. Se você precisa consultar uma chave qualquer, precisa ir clicando até ela, o que é no mínimo maçante.

Por exemplo, tente ir até a seguinte chave (que nem é das mais difíceis):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

Outro dia falarei sobre a possibilidade de ter "favoritos" no Regedit. Hoje vou apenas mostrar o método mais simples que encontrei para abrir o Regedit direto em uma chave específica através de copiar e colar.

A dica foi dada nesta página do Experts Exchange:

Com a ajuda do Notepad, salve em um arquivo com extensão ".vbs" (digamos: regedit.vbs) o seguinte texto:

Set WshShell = CreateObject("WScript.Shell")
Dim MyKey
MyKey = Inputbox("Digite ou cole o caminho")
MyKey = "My Computer\" & MyKey
WshShell.RegWrite "HKCU\Software\Microsoft\W
indows\CurrentVersion\Applets\Regedit\Lastkey",MyKey,"REG_SZ"
WshShell.Run "regedit", 1,True
Set WshShell = Nothing


Quando você clicar duas vezes nesse script uma caixa de diálogo irá aparecer pedindo o caminho. Basta colar e dar OK que o regedit será aberto na chave indicada. É importante que o regedit esteja fechado antes de você rodar o script, ou isso não funcionará.

Coloque um atalho para o script onde achar mais conveniente.

ATENÇÃO: Se você executar o arquivo e ele abrir no Bloco de Notas em vez de exibir a caixa de diálogo, você não é o tipo de usuário que deveria estar lendo essas instruções ;)

Como funciona:

Ao fechar, regedit.exe sempre grava o caminho para a chave aberta em

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey

e consulta o conteúdo dessa chave ao iniciar para determinar que chave abrir automaticamente. O que o script faz é gravar em "lastkey" o caminho fornecido por você antes de chamar regedit.exe.

13 comentários:

  1. hahaha...o meu abriu uma caixa de dialogo, não sabia que eu era um Power User!!

    ResponderExcluir
  2. Tem também o RegistryCrawler p/ se manipular o Registro. Uso a um bom tempo. A busca é n vezes melhor e cria bookmars muito fáceis.

    ResponderExcluir
  3. Remobr,

    O RegistryCrawler pode até ser um ótimo software (outro dia eu vou testar), mas de cara já encontrei um problema: não é gratuito.

    Eu sempre começo meus testes pelos freewares.

    ResponderExcluir
  4. Talvez seja uma pergunta besta, mas alguém conseguiu colar o caminho desejado na janela do script? Aqui nem com ctrl+v nem click direito>colar eu consegui...

    ResponderExcluir
  5. Aqui funciona, sempre.

    Geralmente, quando colar não funciona é porque você copiou errado, capturando uma quebra de linha.

    ResponderExcluir
  6. dãããã... na mosca. Jefferson, se quiser pode deletar meu comentário.

    Abraços,
    Alisson

    ResponderExcluir
  7. É uma ótima saída. Para mim é realmente muito mais fácil resolver várias coisas pelo registro do muitas vezes ficar configurando nos programas.

    Sem contar que quase todo programa coloca um item nas chaves RUN.

    Mas o que me faz realmente falta é uma forma de fazer backup de chaves específicas do registro, pois vários programas guardam suas configurações nele e é muito chato ter de fazer backup de chaves manualmente quando se deseja passar essas configurações para outra máquina.

    Existem programas que fazem backup do registro todo, mas o que me interessa é salvar determinada chave em um arquivo .reg...

    ResponderExcluir
  8. Só mais uma coisa: Eu sou muito preguiçoso e gosto de fazer as coisas sempre de um modo mais fácil (mas direito).

    O único problema desse script é que ao abrir uma janela pedindo o caminho, você ainda é obrigado, ou a ter esse(s) caminho(s) anotado(s) em algum lugar, ou digitá-lo(s) (digitar um caminho longo é f&*#a).

    Fazendo pequenas modificações, ele pode virar um atalho direto a essa(s) chave(s):

    Set WshShell = CreateObject("WScript.Shell")
    WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey","DIGITE AQUI A CHAVE QUE DESEJA ACESSAR","REG_SZ"
    WshShell.Run "regedit", 1,True
    Set WshShell = Nothing


    Assim, quem tem costume de "visitar" inúmeras chaves no Registro (eu me encaixo nesse perfil), pode ter uma pasta com os atalhos já prontos, o que reduz sensivelmente o trabalho.

    ResponderExcluir
  9. Silvinho,

    1)obrigado pela contribuição. Se eu já não estivesse preparando um programa em Delphi com todos os meus "bookmarks" do registro eu iria usar o seu script.

    2)Talvez em não tenha entendido sua necessidade específica, mas para salvar uma chave específica do registro em um arquivo .reg basta clicar com o botão direito sobre ele e clicar em "exportar".

    ResponderExcluir
  10. Anônimo5/7/08 10:25

    Existe um software (freeware) de boa qualidade, o RegAlyzer.

    download: http://www.spybot.com/en/download/index.html

    Basta colar o treço na caixa ao lado de "Procurar" e teclar enter.

    O programa também tem outras funções úteis, como uma busca melhorada (em relação ao padrao do windows), bookmarks e exportar.

    ResponderExcluir
  11. (hehe).
    Talvez eu também não tenha me expressado direito.
    O que me faz falta é um software (ou script) que faça isso por mim automaticamente, entendeu?
    Porque tenho vários backups de chaves específicas de clientes (que sou obrigado a fazer manualmente de tempos em tempos), para que no caso de uma pane no computador (ou software) deles, eu possa restaurar as configurações.
    Um bom exemplo é o Sound Forge, que grava todas as suas configurações no registro.
    Nesse caso eu não preciso de um backup de todo o registro, mas apenas da chave específica do programa onde ficam as configurações.

    Em tempo: fiquei curioso quanto a esse programinha para bookmarks de registro.

    ResponderExcluir
  12. Anônimo,

    Obrigado pela dica do RegAlyzer. Parece ser muito bom.

    ResponderExcluir
  13. Silvinho,

    1) Eu até pensei que você pudesse estar querendo fazer automaticamente, mas como não consegui pensar em um motivo, achei que não fosse isso.

    Leia meu próximo post sobre o assunto. Talvez seja o que você quer.

    2)Ignore o meu programa por ora. O RegAlyzer parece muito bom.

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.