Compartilhar via


Como criar uma chave do Registro e definir seu valor no Visual Basic

O CreateSubKey método do My.Computer.Registry objeto pode ser usado para criar uma chave do Registro.

Procedimento

Para criar uma chave do Registro

  • Use o método CreateSubKey especificando em qual hive a chave será colocada, bem como o nome da chave. O parâmetro Subkey não diferencia maiúsculas e minúsculas. Este exemplo cria a chave MyTestKey do Registro em HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    

Para criar uma chave do Registro e definir um valor nela

  1. Use o método CreateSubkey especificando em qual hive a chave será colocada, bem como o nome da chave. Este exemplo cria a chave MyTestKey do Registro em HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. Defina o valor com o SetValue método. Este exemplo define o valor da cadeia de caracteres. "MyTestKeyValue" para "Este é um valor de teste".

    My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
      "MyTestKeyValue", "This is a test value.")
    

Exemplo

Este exemplo cria a chave MyTestKey do Registro em HKEY_CURRENT_USER e define o valor MyTestKeyValue da cadeia de caracteres como This is a test value.

My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
  "MyTestKeyValue", "This is a test value.")

Programação robusta

Examine a estrutura do Registro para encontrar um local adequado para sua chave. Por exemplo, talvez você queira abrir a chave HKEY_CURRENT_USER\Software do usuário atual e criar uma chave com o nome da sua empresa. Em seguida, adicione os valores do Registro à chave da sua empresa.

Ao ler o registro de um aplicativo Web, o usuário atual depende da autenticação e da representação implementadas no aplicativo Web.

É mais seguro gravar dados na pasta do usuário (CurrentUser) em vez de no computador local (LocalMachine).

Ao criar um valor do Registro, você precisa decidir o que fazer se esse valor já existir. Outro processo, talvez mal-intencionado, pode já ter criado o valor e ter acesso a ele. Quando você coloca dados no valor do Registro, os dados ficam disponíveis para o outro processo. Para evitar isso, use o GetValue método. Ele retornará Nothing se a chave ainda não existir.

Não é seguro armazenar segredos, como senhas, no registro como texto sem formatação, mesmo que a chave do Registro esteja protegida por ACLs (Listas de Controle de Acesso).

As seguintes condições podem causar uma exceção:

Segurança do .NET Framework

Para executar esse processo, o assembly requer um nível de privilégio concedido pela RegistryPermission classe. Se você estiver executando em um contexto de confiança parcial, o processo poderá gerar uma exceção devido a privilégios insuficientes. Da mesma forma, o usuário deve ter as ACLs corretas para criar ou alterar configurações. Por exemplo, um aplicativo local que tem a permissão de segurança de acesso ao código pode não ter permissão do sistema operacional. Para obter mais informações, consulte Noções básicas de segurança de acesso ao código.

Observação

O CAS (Code Access Security) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não honram as anotações CAS e geram erros se as APIs relacionadas ao CAS forem usadas. Os desenvolvedores devem buscar meios alternativos para realizar tarefas de segurança.

Consulte também