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

.NET

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

Daniel

Curtidas 0

Melhor post

Jothaz

Jothaz

06/09/2015

O Pai Google responde: vb.net ler chave registro
GOSTEI 1

Mais Respostas

Daniel

Daniel

06/09/2015

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!
GOSTEI 0
Jothaz

Jothaz

06/09/2015

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.
GOSTEI 0
Daniel

Daniel

06/09/2015

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
GOSTEI 0
Jothaz

Jothaz

06/09/2015

Você esta usando windows form ou web form?
GOSTEI 0
Daniel

Daniel

06/09/2015

Windows Form.
GOSTEI 0
Jothaz

Jothaz

06/09/2015

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
GOSTEI 0
Daniel

Daniel

06/09/2015

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

Desculpa pela demora na resposta!
GOSTEI 0
Daniel

Daniel

06/09/2015

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

Desculpa pela demora na resposta!
GOSTEI 0
POSTAR