Procedura: leggere un valore da una chiave del Registro di sistema in Visual Basic

Il metodo GetValue dell'oggetto My.Computer.Registry può essere usato per leggere i valori nel Registro di sistema di Windows.

Se la chiave, "Software\MyApp" nell'esempio seguente, non esiste, viene generata un'eccezione. Se ValueName, "Name" nell'esempio seguente, non esiste, viene restituito Nothing.

Il metodo GetValue può essere usato anche per determinare se esiste un determinato valore in una chiave del Registro di sistema specifica.

Quando il codice legge il Registro di sistema da un'applicazione Web, l'utente corrente viene determinato tramite l'autenticazione e la rappresentazione implementata nell'applicazione Web.

Per leggere un valore da una chiave del Registro di sistema

  • Usare il metodo GetValue (specificando il percorso e il nome) per leggere un valore dalla chiave del Registro di sistema. L'esempio seguente legge il valore Name da HKEY_CURRENT_USER\Software\MyApp e lo visualizza in una finestra di messaggio.

    Dim readValue = My.Computer.Registry.GetValue(
        "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing)
    MsgBox("The value is " & readValue)
    

Questo esempio di codice è disponibile anche come frammento di codice IntelliSense. Nello strumento di selezione dei frammenti di codice il frammento di codice si trova in Sistema operativo Windows > Registro di sistema. Per altre informazioni, vedere Code Snippets.

Per determinare se esiste un valore in una chiave del Registro di sistema

  • Usare il metodo GetValue per recuperare il valore. Il codice seguente controlla se il valore esiste e restituisce un messaggio se il valore non esiste.

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

Programmazione efficiente

Nel Registro di sistema sono contenute chiavi di primo livello, o radice, usate per memorizzare i dati. Ad esempio, la chiave radice HKEY_LOCAL_MACHINE è usata per memorizzare le impostazioni a livello di computer usate da tutti gli utenti, mentre la chiave HKEY_CURRENT_USER viene usata per memorizzare i dati specifici di un singolo utente.

Le seguenti condizioni possono generare un'eccezione:

Sicurezza di .NET Framework

Per eseguire questo processo, l'assembly richiede un livello di privilegio concesso dalla classe RegistryPermission. Se viene eseguito in un contesto parzialmente attendibile, il processo potrebbe generare un'eccezione a causa di privilegi insufficienti. Allo stesso modo, l'utente deve disporre degli ACL corretti per la creazione o la scrittura nelle impostazioni. Ad esempio, un'applicazione locale che ha l'autorizzazione di sicurezza dall'accesso di codice potrebbe non avere l'autorizzazione del sistema operativo. Per altre informazioni, vedere Code Access Security Basics.

Nota

La sicurezza dall'accesso al codice (CAS) è stata deprecata in tutte le versioni di .NET Framework e .NET. Le versioni recenti di .NET non rispettano le annotazioni CAS e generano errori se vengono usate API correlate alla CAS. Gli sviluppatori devono cercare mezzi alternativi per eseguire attività di sicurezza.

Vedi anche