Udostępnij za pośrednictwem


Odczytywanie z oraz zapisywanie do rejestru za pomocą przestrzeni nazw Microsoft.Win32 (Visual Basic)

Chociaż My.Computer.Registry należy uwzględnić podstawowe potrzeby podczas programowania w rejestrze, można również użyć Registry klas i RegistryKey w Microsoft.Win32 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. Same klucze podstawowe są tylko do odczytu. W poniższej tabeli wymieniono i opisano siedem kluczy uwidocznionych przez klasę Registry .

Klawisz 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 wystąpieniu tego błędu, użyj metody, takiej jak GetValue, która zwraca Nothing wartość , jeśli klucz jeszcze 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 w celu 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 też