Udostępnij za pomocą


Odczytywanie z rejestru i zapisywanie w rejestrze przy użyciu przestrzeni nazw Microsoft.Win32 (Visual Basic)

Chociaż My.Computer.Registry powinien pokrywać podstawowe potrzeby podczas programowania z użyciem rejestru, można również użyć klas Registry i RegistryKey w przestrzeni nazw platformy .NET.

Klucze w klasie rejestru

Klasa Registry dostarcza podstawowe klucze rejestru, które mogą służyć do uzyskiwania dostępu do podklucze i ich wartości. Te klucze bazowe są tylko do odczytu. W poniższej tabeli wymieniono i opisano siedem kluczy uwidocznionych przez klasę Registry .

Klucz Opis
ClassesRoot Definiuje typy dokumentów i właściwości skojarzonych z tymi typami.
CurrentConfig Zawiera informacje o konfiguracji sprzętu, które nie są specyficzne dla użytkownika.
CurrentUser Zawiera informacje o bieżących preferencjach użytkownika, takich jak zmienne środowiskowe.
DynData Zawiera dane rejestru dynamicznego, takie jak używane przez sterowniki urządzeń wirtualnych.
LocalMachine Zawiera pięć podklucza (Sprzęt, SAM, Zabezpieczenia, Oprogramowanie i System), które przechowują dane konfiguracji dla komputera lokalnego.
PerformanceData Zawiera informacje o wydajności składników oprogramowania.
Users Zawiera informacje o domyślnych preferencjach użytkownika.

Ważne

Bezpieczniejszy jest zapis danych do bieżącego użytkownika (CurrentUser) niż do komputera lokalnego (LocalMachine). Warunek, który jest zwykle określany jako "kucanie", występuje, gdy tworzony klucz został wcześniej utworzony przez inny, prawdopodobnie złośliwy, proces. Aby zapobiec temu, użyj metody takiej jak GetValue, która zwraca Nothing, jeśli klucz nie istnieje.

Odczytywanie wartości z rejestru

Poniższy kod pokazuje, jak odczytać ciąg z 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

Poniższy kod odczytuje, zwiększa, a następnie zapisuje ciąg do 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

Zobacz także