O access ao registro solicitado não é permitido

Estou escrevendo um utilitário tweak que modifica algumas chaves em HKEY_CLASSES_ROOT .

Tudo funciona bem no Windows XP e assim por diante. Mas estou recebendo erro Requested registry access is not allowed no Windows 7. Vista e 2008 eu acho que também.

Como devo modificar meu código para adicionar suporte ao UAC?

app.manifest deve ser assim:

 < ?xml version="1.0" encoding="utf-8"?>           

Se você não precisa de privilégios de administrador para o aplicativo inteiro, ou apenas para algumas alterações não freqüentes, é possível fazer as alterações em um novo processo e iniciá-lo usando:

 Process.StartInfo.UseShellExecute = true; Process.StartInfo.Verb = "runas"; 

que irá executar o processo como administrador para fazer o que você precisa com o registro, mas retornar ao seu aplicativo com os privilégios normais. Dessa forma, ele não solicita ao usuário uma checkbox de diálogo do UAC toda vez que é iniciado.

Você não pode gravar nas seções HKCR (ou HKLM) no Vista e nas versões mais recentes do Windows, a menos que tenha privilégios administrativos. Portanto, você precisará estar logado como um Administrador antes de executar o utilitário, fornecer um manifesto que exija nível de Administrador (que solicitará ao usuário informações de login do Administrador) ou deixar de alterar as coisas em locais que não sejam Os administradores não deveriam estar jogando. 🙂

Como uma correção temporária, os usuários podem clicar com o botão direito do mouse no utilitário e selecionar “Executar como administrador”.

Eu estava tentando o verb = "runas" , mas eu ainda estava recebendo UnauthorizedAccessException ao tentar atualizar o valor do registro. Acontece que foi devido a não abrir a subchave com o conjunto gravável para true.

 Registry.OpenSubKey("KeyName", true); 

Não é possível gravar na chave do Registro, obtendo UnauthorizedAccessException

Esse problema tem a ver com a concessão da autorização necessária para a conta do usuário em que o aplicativo é executado. Para ler uma situação semelhante e uma resposta detalhada para a solução correta, conforme documentado pela Microsoft, fique à vontade para visitar este post: http://rambletech.wordpress.com/2011/10/17/requested-registry-access-is- não permitido/