Delen via


Lezen van en schrijven naar het register met behulp van de Microsoft.Win32-naamruimte (Visual Basic)

Hoewel My.Computer.Registry zou moeten voldoen aan uw basisbehoeften bij het programmeren met het register, kunt u ook de Registry en RegistryKey klassen in de Microsoft.Win32 naamruimte van .NET gebruiken.

Sleutels in het register

De Registry klasse levert de basisregistersleutels die kunnen worden gebruikt voor toegang tot subsleutels en hun waarden. De basissleutels zelf zijn alleen lezen. De volgende tabel bevat en beschrijft de zeven sleutels die door de Registry klasse worden weergegeven.

Sleutel Beschrijving
ClassesRoot Hiermee definieert u de typen documenten en de eigenschappen die aan deze typen zijn gekoppeld.
CurrentConfig Bevat informatie over de hardwareconfiguratie die niet specifiek is voor de gebruiker.
CurrentUser Bevat informatie over de huidige gebruikersvoorkeuren, zoals omgevingsvariabelen.
DynData Bevat dynamische registergegevens, zoals die worden gebruikt door Virtuele apparaatstuurprogramma's.
LocalMachine Bevat vijf subsleutels (Hardware, SAM, Beveiliging, Software en Systeem) die de configuratiegegevens voor de lokale computer bevatten.
PerformanceData Bevat prestatiegegevens voor softwareonderdelen.
Users Bevat informatie over de standaardgebruikersvoorkeuren.

Belangrijk

Het is veiliger om gegevens naar de huidige gebruiker () te schrijven danCurrentUser naar de lokale computer (LocalMachine). Een toestand die meestal 'squatting' wordt genoemd, ontstaat wanneer de sleutel die u maakt eerder is aangemaakt door een ander, mogelijk kwaadaardig proces. Als u wilt voorkomen dat dit gebeurt, gebruikt u een methode, zoals GetValue, die retourneert Nothing als de sleutel nog niet bestaat.

Een waarde uit het register lezen

De volgende code laat zien hoe u een tekenreeks leest uit 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

De volgende code leest, incrementeert en schrijft vervolgens een tekenreeks naar 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

Zie ook