Exclua a associação de arquivos do Windows usando o arquivo .reg

12

Pergunta: Usando um arquivo .reg, como removo completamente uma associação de tipo de arquivo? Eu tentei por exemplo excluindo HKEY_CLASSES_ROOT\myextension_auto_file , mas aparentemente não é suficiente.

Background: No Windows Vista, eu tenho um arquivo .reg que associa com sucesso um tipo de arquivo a outro aplicativo que sempre precisa de alguns parâmetros passados (é por isso que apenas o clique direito não era suficiente; see .reg file ). No entanto, como o arquivo .reg, por algum motivo, só funciona com extensões de arquivos não associadas anteriormente, estou tentando adicionar alguns comandos a ele para excluir primeiro uma determinada associação de tipo de arquivo.

    
por Philipp Lenssen 06.10.2009 / 05:46

2 respostas

18

Vejo que você está escrevendo para HKEY_CLASSES_ROOT com esse arquivo reg na pergunta. Esta seção é uma exibição mesclada de HKEY_LOCAL_MACHINE\Software\Classes e HKEY_CURRENT_USER\Software\Classes .

O motivo pelo qual seu arquivo só funciona para arquivos anteriormente não associados é que grava em HKEY_CLASSES_ROOT redirecionamento para a chave apropriada em HKEY_LOCAL_MACHINE (a seção para padrões do sistema e configurações para todos os usuários). No entanto, você terá um problema porque as configurações de associação de arquivos em HKEY_CURRENT_USER (que contém configurações por usuário) substituem os padrões do sistema.

Além disso, se a extensão for controlada por uma associação de "programas padrão", as informações de associação de arquivos serão armazenadas em HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext> . Você pode verificar se sua extensão tem essa associação verificando a existência dessa chave.

Você pode editar seu .reg para trabalhar em qualquer arquivo, incluindo arquivos associados anteriormente, duplicando-o para as chaves em ambos HKEY_LOCAL_MACHINE e HKEY_CURRENT_USER . Da mesma forma, você pode remover a associação excluindo as chaves apropriadas em ambas as seções (incluindo a localização FileExts ).

Um arquivo .reg funcional para excluir uma associação de uma extensão específica é semelhante a este (que exclui .blerg assocations):

Windows Registry Editor Version 5.00

; Created with Default Programs Editor
; http://defaultprogramseditor.com/

; Delete Extension
[-HKEY_LOCAL_MACHINE\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.blerg]

No entanto , se você preferir não ter que se informar sobre os aspectos internos do Registro e os vários aspectos misteriosos da associação de arquivos do Windows, recomendo que você use Editor de Programas Padrão para fazer essas alterações - você pode até mesmo exportar uma ação para um arquivo .reg, que parece se encaixar perfeitamente às suas necessidades. p>

No seu caso, é tão simples quanto clicar em File Type Settings e, em seguida, em Delete an extension . Selecione a extensão e, em vez de salvar no registro, pressione a pequena seta no botão Delete Extension e clique em Save to .reg file... . Isso produzirá um arquivo .reg completo e comentado sobre essa ação que você pode salvar ou distribuir para outras máquinas.

    
por 06.10.2009 / 19:11
3

Esta questão parece ter muitas suposições que são questionáveis.

Primeiro, por que você quer usar um arquivo .reg para remover a associação de arquivos? Por que não apenas fazer isso a partir da interface do usuário? Você está fazendo isso em muitas estações de trabalho?

Em segundo lugar, não vejo por que o arquivo .reg vinculado funcionaria apenas com extensões de arquivo não associadas anteriormente.

De qualquer forma, para excluir uma chave usando um arquivo .reg, você prefixará um hífen no nome da chave. Para remover um valor, defina-o como sinal de hífen. Tudo escrito aqui .

Para remover uma associação de arquivo, você precisa excluir a chave da extensão do arquivo, por exemplo,

[-HKEY_CLASSES_ROOT\.dat]

Isso por si só impediria que o arquivo fosse aberto, mas, para fins de conclusão, você também deve remover a chave do nome do tipo, que era o valor padrão na chave de extensão de arquivo. Exemplo:

[-HKEY_CLASSES_ROOT\dat_auto_file]
    
por 06.10.2009 / 08:02