[VB.NET] Verificar existência de chave de registro

06/09/2015

Saudações pessoal, estou precisando de um método para verificar a existência de uma chave de registro do Windows. Eu tentei fazer ele ler a chave (inexistente) e me retornar um valor, mas como ele não consegue ler ele não me retorna nada.

Informações:

1- Preciso que ele leia a chave (DWORD): DisableAntiSpyware
2- Esta chave está localizada em: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender

Obs: Desculpa pela "noobisse", sou novo no assunto.

Abraços!

Daniel

Melhor resposta

06/09/2015

O Pai Google responde: vb.net ler chave registro

Jothaz

Responder Citar

Outras Respostas

06/09/2015

Daniel

Entendo que pra você seja fácil. mas já testei os métodos que encontrei no Google e não achei uma solução. Se puder me dar uma "luz", eu fico grato!
Responder Citar

06/09/2015

Jothaz

Entendo que pra você seja fácil. mas já testei os métodos que encontrei no Google e não achei uma solução. Se puder me dar uma "luz", eu fico grato!


Os exemplos são bem completos, posta o código que você tem.

E o qual erro esta retornando.
Responder Citar

06/09/2015

Daniel

O meu problema é não ter um código! Eu tentei de diversas maneiras, mas não obtive sucesso em nenhuma delas. O único modo que eu encontrei foi esse:

/ Se possível, cria uma chave simples.
Dim Cr1 As RegistryKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\Policies\Microsoft\Windows Defender")

/ Se possível, cria um valor DWORD dentro da chave criada.
Cr1.SetValue("DisableAntiSpyware", "00000000", Microsoft.Win32.RegistryValueKind.DWord)

/ Cria um objeto para guardar o valor do valor DWORD criado.
Dim WDKey As Object = Cr1.GetValue("DisableAntiSpyware")

/ Verificar o valor do valor DWORD e defini o que fazer dependendo da resposta.
If (WDKey <> "1") Then
lb_windefender.Text = "Windows Defender: Ativado"
lb_windefender.ForeColor = Color.Green
Else
lb_windefender.Text = "Windows Defender: Desativado"
lb_windefender.ForeColor = Color.Red
End If

- O código completo ficou assim:

Dim Cr1 As RegistryKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\Policies\Microsoft\Windows Defender")
Cr1.SetValue("DisableAntiSpyware", "00000000", Microsoft.Win32.RegistryValueKind.DWord)
Dim WDKey As Object = Cr1.GetValue("DisableAntiSpyware")
If (WDKey <> "1") Then
lb_windefender.Text = "Windows Defender: Ativado"
lb_windefender.ForeColor = Color.Green
Else
lb_windefender.Text = "Windows Defender: Desativado"
lb_windefender.ForeColor = Color.Red
End If
Responder Citar

06/09/2015

Jothaz

Você esta usando windows form ou web form?
Responder Citar

07/09/2015

Daniel

Windows Form.
Responder Citar

08/09/2015

Jothaz

Este código retorna algum erro?

Dim Cr1 As RegistryKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\Policies\Microsoft\Windows Defender")
Cr1.SetValue("DisableAntiSpyware", "00000000", Microsoft.Win32.RegistryValueKind.DWord)
Dim WDKey As Object = Cr1.GetValue("DisableAntiSpyware")
If (WDKey <> "1") Then
lb_windefender.Text = "Windows Defender: Ativado"
lb_windefender.ForeColor = Color.Green
Else
lb_windefender.Text = "Windows Defender: Desativado"
lb_windefender.ForeColor = Color.Red
End If
Responder Citar

09/09/2015

Daniel

Não, ele funciona bem! Porém, é fora do meu objetivo.

Desculpa pela demora na resposta!
Responder Citar

09/09/2015

Daniel

Não, ele funciona bem! Porém, é fora do meu objetivo.

Desculpa pela demora na resposta!
Responder Citar