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 |
---|---|
Consente di definire i tipi di documento e le relative proprietà. |
|
Contiene informazioni non specifiche dell'utente sulla configurazione hardware. |
|
Contiene informazioni sulle preferenze dell'utente corrente, quali le variabili di ambiente. |
|
Contiene dati dinamici del Registro di sistema, quali i dati utilizzati dai driver di periferica virtuali. |
|
Contiene cinque sottochiavi (Hardware, SAM, Security, Software e System) in cui sono disponibili i dati di configurazione relativi al computer locale. |
|
Contiene informazioni sulle prestazioni per i componenti software. |
|
Contiene informazioni sulle preferenze predefinite degli utenti. |
![]() |
---|
È 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
Attività
Risoluzione dei problemi: modifica del Registro di sistema (Visual Basic)
Riferimenti
Concetti
Cenni preliminari sulla gestione delle eccezioni strutturata per Visual Basic
Attività comuni del Registro di sistema (Visual Basic)
Sicurezza e Registro di sistema (Visual Basic)
Lettura e scrittura nel Registro di sistema utilizzando l'oggetto My (Visual Basic)