2013-04-01 28 views
5

In VB.NET posso creare una chiave nel Registro di sistema di Windows in questo modo:controllare se una chiave esiste nel Registro di sistema di Windows con VB.NET

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

E posso controllare se un valoreesiste all'interno una chiave come questo:

If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\MyKey", _ 
     "TestValue", Nothing) Is Nothing Then 
    MsgBox("Value does not exist.") 
Else 
    MsgBox("Value exist.") 
End If 

Ma come posso controllare se un chiave con un nome specifico esiste nel Registro di sistema?

risposta

6

Un modo è quello di utilizzare il metodo Registry.OpenSubKey

If Microsoft.Win32.Registry.LocalMachine.OpenSubKey("TestKey") Is Nothing Then 
    ' Key doesn't exist 
Else 
    ' Key existed 
End If 

Tuttavia vorrei consigliare che non si prende questa strada. Il metodo OpenSubKey che restituisce Nothing significa che la chiave non esisteva in qualche punto nel passato. Nel momento in cui il metodo restituisce un'altra operazione in un altro programma potrebbe aver causato la creazione della chiave.

Invece di verificare l'esistenza della chiave e crearla dopo il fatto, andrei direttamente al CreateSubKey.

+0

QUESTO NON FUNZIONA SEMPRE. Un'applicazione a 32 bit su un sistema operativo a 64 bit esaminerà il nodo HKLM \ Software \ Wow6432Node per impostazione predefinita. Per leggere la versione a 64 bit della chiave, è necessario specificare il RegistryView –

Problemi correlati