Como posso verificar se um usuário tem permissão para ler / gravar uma chave do Registro específica?

Alguém sabe como eu posso verificar programaticamente (usando C #) se o meu programa será capaz de ler / gravar uma chave de registro específica (especificamente: "SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run")?

Eu estou perguntando porque meu programa tem a opção de ativar ou desativar o comportamento 'executar na inicialização'. Desejo desabilitar essa opção se o usuário atual não tiver permissão para fazer alterações no registro. Essa chave sempre pode ser escrita pelo usuário atual ou existe a possibilidade de ela ter sido bloqueada? Se este último, como faço para verificar isso?

Eu tenho visto várias maneiras conflitantes de verificar as permissões do registro - mas basicamente não consigo encontrar uma maneira de verificar uma chave específica antes de tentar lê-la. Eu preferiria executar a verificação antes de acessar a chave do que tentar acessá-la e receber uma exceção.

Qualquer ajuda é muito apreciada.

Tom

questionAnswers(6)

yourAnswerToTheQuestion