Pergunta

Eu sei que nós não deveríamos estar usando o registro para armazenar Dados de Aplicativo mais, mas na atualização de um aplicativo Herdado (e querendo fazer o menor número de alterações), que Ramos de Registo não são administradores autorizados a usar?

Posso aceder a todas HKEY_CURRENT_USER (o aplicativo atualmente de acesso HKEY_LOCAL_MACHINE) sem privilégios de Administrador?

Foi útil?

Solução

Em geral, um usuário não administrador tem acesso ao registo:

Leia/Escreva para:

  • HKEY_CURRENT_USER

Somente Leitura:

  • HKEY_LOCAL_MACHINE
  • HKEY_CLASSES_ROOT (que é apenas um link para HKEY_LOCAL_MACHINE\Software\Classes)

É possível alterar essas permissões em uma chave-a-chave de base, mas é extremamente raro.Você não deve ter que se preocupar com isso.

Para seus propósitos, a sua aplicação deve ser escrita de definições e configuração para HKEY_CURRENT_USER.A canonical lugar é qualquer lugar dentro HKEY_CURRENT_USER\Software\YourCompany\YourProduct\

Você pode manter as configurações que são globais (todos os usuários) em HKEY_LOCAL_MACHINE.É muito raro precisar de o fazer, e você deve evitá-lo.O problema é que qualquer usuário pode "ler" as, mas apenas um administrador (ou, por extensão, o programa de configuração/instalação do programa) pode "definir" a eles.

Outra fonte comum de problemas:a sua aplicação não deve escrever nada no Program files ou o Windows diretórios.Se você precisa gravar os arquivos, há várias opções na mão;descrevendo todos eles seria uma discussão mais longa.Todas as opções de acabar de escrever para uma subpasta ou outro sob %USERPROFILE% para o usuário em questão.

Finalmente, a sua aplicação deve ficar de fora do HKEY_CURRENT_CONFIG.Essa seção contém a configuração de hardware, configurações de serviços e outros itens que 99,9999% de aplicações não deve precisar de olhar (por exemplo, mantém o atual " plug-and-play lista de dispositivos).Se você precisa de alguma coisa de lá, a maioria das informações está disponível através de APIs suportadas em outros lugares.

Outras dicas

Sim, você deve ser capaz de escrever em qualquer lugar em HKEY_CURRENT_USER sem ter privilégios de Administrador.Mas essa é, efetivamente, um arquivo privado de que nenhum outro usuário nesta máquina será capaz de acessar, então, você não pode colocar qualquer configuração compartilhada lá.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top