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

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

Procedimento

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 do Registro MyTestKey em HKEY_CURRENT_USER.

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

Criar uma chave do Registro e definir o valor

  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 do Registro MyTestKey em HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. Defina o valor com o método SetValue. Este exemplo define o valor da cadeia de caracteres. De "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 do Registro MyTestKey em HKEY_CURRENT_USER e, em seguida, define o valor da cadeia de caracteres de MyTestKeyValue para 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

Analise a estrutura do Registro para encontrar um local adequado para a chave. Por exemplo, caso você queira abrir a chave HKEY_CURRENT_USER\Software do usuário atual e criar uma chave com o nome da empresa. Em seguida, adicione os valores do Registro à chave da 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 de Registro, é necessário decidir o que fazer se esse valor já existir. Outro processo, talvez um mal-intencionado, pode já ter criado o valor e tem acesso a ele. Ao colocar dados no valor de Registro, os dados estarão disponíveis para o outro processo. Para impedir isso, use o método GetValue. 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 se a chave do Registro estiver 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, seu assembly exige um nível de privilégio concedido pela classe RegistryPermission. Se você estiver executando em um contexto de confiança parcial, o processo poderá gerar uma exceção em razão dos privilégios insuficientes. Da mesma forma, o usuário deve ter as ACLs corretas para criar ou gravar nas configurações. Por exemplo, um aplicativo local que tem a permissão de segurança de acesso do código pode não ter permissão do sistema operacional. Para obter mais informações, consulte Noções Básicas da Segurança de Acesso do Código.

Observação

O CAS (Segurança de Acesso do Código) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não aceitam anotações de CAS e produzem erros caso as APIs relacionadas ao CAS sejam usadas. Os desenvolvedores devem buscar meios alternativos de realizar tarefas de segurança.

Confira também