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âmetroSubkey
não diferencia maiúsculas e minúsculas. Este exemplo cria a chave do RegistroMyTestKey
em HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Criar uma chave do Registro e definir o valor
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 RegistroMyTestKey
em HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
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:
O nome da chave é
Nothing
(ArgumentNullException).O usuário não tem permissões para criar chaves do Registro (SecurityException).
O nome da chave excede o limite de 255 caracteres (ArgumentException).
A chave é fechada (IOException).
A chave do Registro é somente leitura (UnauthorizedAccessException).
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.