Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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