Devi innanzitutto sapere in che "macro-chiave" è situata la tua chiave (se è sotto HKLM/HKCU/HKU/...); in base a questo scegli da che campo della classe Registry recuperare la macro-chiave.
codice:
Imports Microsoft.Win32
'...
'Recupera la chiave "HKEY_LOCAL_MACHINE"
Dim key As RegistryKey=Registry.LocalMachine
Quindi puoi usare il metodo OpenSubKey per aprire la chiave di cui vuoi verificare l'esistenza. Se restituisce Nothing allora la chiave non esiste.
codice:
'continua da prima
If key.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run") Is Nothing Then
Console.WriteLine("La chiave non esiste")
Else
Console.WriteLine("La chiave esiste")
End If
Attenzione: questo metodo consente di verificare l'esistenza di chiavi propriamente dette, ossia quelle che nel regedit vengono viste come cartelle. Se devi verificare l'esistenza di un valore allora devi prima verificare l'esistenza della chiave, quindi verificare l'esistenza del valore nell'array dei nomi dei valori restituito dal metodo GetValueNames:
codice:
'Recupera la chiave "HKEY_LOCAL_MACHINE" e da essa anche la chiave che ci interessa
Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run")
If key Is Nothing Then
Console.WriteLine("La chiave non esiste")
Else
Console.WriteLine("La chiave esiste")
If DirectCast(key.GetValueNames, IList).IndexOf("AVG7_CC") = -1 Then
Console.WriteLine("Il valore non esiste")
Else
Console.WriteLine("Il valore esiste")
End If
End If
.