Condividi tramite


Lettura e scrittura nel Registro di sistema mediante lo spazio dei nomi Microsoft.Win32 (Visual Basic)

My.Computer.Registry dovrebbe essere in grado di soddisfare le esigenze di base della programmazione con il Registro di sistema, tuttavia è possibile utilizzare anche le classi Registry e RegistryKey nello spazio dei nomi Microsoft.Win32 di .NET Framework.

Chiavi della classe Registry

Nella classe Registry sono disponibili le chiavi di base del Registro di sistema che consentono l'accesso alle sottochiavi e ai relativi valori.Le classi base sono in sola lettura.Nella tabella seguente sono elencate e descritte le sette chiavi esposte dalla classe Registry.

Chiave

Descrizione

ClassesRoot

Consente di definire i tipi di documento e le relative proprietà.

CurrentConfig

Contiene informazioni non specifiche dell'utente sulla configurazione hardware.

CurrentUser

Contiene informazioni sulle preferenze dell'utente corrente, quali le variabili di ambiente.

DynData

Contiene dati dinamici del Registro di sistema, quali i dati utilizzati dai driver di periferica virtuali.

LocalMachine

Contiene cinque sottochiavi (Hardware, SAM, Security, Software e System) in cui sono disponibili i dati di configurazione relativi al computer locale.

PerformanceData

Contiene informazioni sulle prestazioni per i componenti software.

Users

Contiene informazioni sulle preferenze predefinite degli utenti.

Nota sulla sicurezzaNota sulla sicurezza

È più sicuro scrivere dati per l'utente corrente (CurrentUser) anziché nel computer locale (LocalMachine).Quando la chiave che si sta creando è stata precedentemente creata da un altro processo, probabilmente dannoso, si verifica una condizione comunemente definita "squatting".Per evitare che si verifichi tale situazione, utilizzare un metodo, ad esempio GetValue, che restituisca Nothing se la chiave non esiste già.

Lettura di un valore dal Registro di sistema

Nel codice che segue viene mostrato come leggere una stringa da HKEY_CURRENT_USER.

Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    regVersion.Close()
End If

Il codice riportato di seguito consente di leggere, incrementare, quindi scrivere una stringa in HKEY_CURRENT_USER.

Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                  "SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
    ' Key doesn't exist; create it.
    regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
                 "SOFTWARE\\Microsoft\\TestApp\\1.0")
End If

Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    intVersion = intVersion + 1
    regVersion.SetValue("Version", intVersion)
    regVersion.Close()
End If

Vedere anche

Riferimenti

Istruzione Try...Catch...Finally (Visual Basic)

SystemException

ApplicationException

RegistryProxy

Concetti

Sicurezza e Registro di sistema (Visual Basic)

Altre risorse

Lettura e scrittura nel Registro di sistema (Visual Basic)