As chaves de registro editadas continuam sendo revertidas para seus valores originais

0

SO: Windows Vista Home Premium SP2

Estou fazendo as seguintes alterações para que os nomes dos programas em questão sejam mais fáceis de usar nas listas "abrir com" e "programas":

[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache]
"C:\Program Files\K-Lite Codec Pack\Media Player Classic\mpc-hc.exe"="Media Player Classic Home Cinema"
"C:\Program Files\MKVToolNix\mmg.exe"="MKV Merge"

A cada duas semanas ou mais, eles retornam ao "MPC-HC" e "mmg.exe" respectivamente! O que há com isso?!

    
por Makaveli84 05.08.2014 / 22:42

1 resposta

0

Solução

Você não deve editar manualmente o conteúdo da chave de registro MuiCache . Sempre que o cache é atualizado, as descrições são lidas novamente a partir dos arquivos executáveis relacionados e suas alterações são revertidas.

Além de corrigir a descrição usando, por exemplo, ResHacker , há um recurso interno que pode ser útil neste caso:

You can also include a FriendlyAppName value to provide the system with a friendly name for your application. The application's friendly name may also be extracted from its executable file, but only if the FriendlyAppName value is absent.

Source: Extending Shortcut Menus

  1. Faça logon com uma conta de administrador.

  2. Pressione Win + R , digite ou cole regedit.exe na caixa de texto e pressione Enter .

  3. Navegue até a seguinte chave de registro:

    HKEY_CLASSES_ROOT\Applications
    
  4. Localize a subchave relacionada ao aplicativo em que você está interessado. Caso a chave do aplicativo esteja ausente, siga estas etapas:

    a. Clique com o botão direito do mouse na chave Applications e escolha Novo > Chave no menu de contexto.

    b. Nomeie a chave após o nome do executável (por exemplo, whatever.exe ).

    c. Clique com o botão direito do mouse na nova chave e crie uma subchave shell . Crie uma subchave open dentro da subchave shell .

    d. Crie uma subchave chamada command dentro da subchave open . Clique duas vezes no valor (Default) e defina-o para o caminho do executável, além de "%1" para considerar o parâmetro a ser transmitido ao programa. Por exemplo:

    "C:\Program Files\Whatever, Inc.\whatever.exe" "%1"
    
  5. Navegue até a seguinte chave, em que whatever.exe é o nome real do executável:

    HKEY_CLASSES_ROOT\Applications\whatever.exe\shell\open
    
  6. Clique com o botão direito em uma área vazia no painel direito e escolha Novo > Valor da string no menu de contexto. Nomeie o novo valor FriendlyAppName e defina como desejar. As alterações são aplicadas imediatamente.

Observação A documentação oficial não está atualizada. O valor FriendlyAppName era destinado a armazenar a chave do aplicativo raiz, mas esse não é mais o caso no Windows XP.

Informações adicionais

FriendlyAppName

Provides a way to get a localizable name to display for an application instead of just the version information appearing, which may not be localizable. The association query ASSOCSTR reads this registry entry value and falls back to use the FileDescription name in the version information. If that name is missing, the association query defaults to the display name of the file.

Source: Application Registration

Após iniciar um programa, as descrições são geralmente extraídas do arquivo executável e armazenadas nas seguintes chaves de registro para uso posterior:

HKEY_CLASSES_ROOT\Local Settings\MuiCache
HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

Essas chaves do registro são realmente mapeadas para o ramo do usuário:

HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

Leitura adicional

por 07.08.2014 / 18:50