Porady: tworzenie klucza rejestru i określanie jego wartości w Visual Basic
Metodę CreateSubKey
My.Computer.Registry
obiektu można użyć do utworzenia klucza rejestru.
Procedura
Aby utworzyć klucz rejestru
CreateSubKey
Użyj metody , określając gałąź, w której ma być umieszczany klucz, a także nazwę klucza.Subkey
Parametr nie uwzględnia wielkości liter. W tym przykładzie tworzony jest kluczMyTestKey
rejestru w HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Aby utworzyć klucz rejestru i ustawić w nim wartość
CreateSubkey
Użyj metody , określając gałąź, w której ma być umieszczany klucz, a także nazwę klucza. W tym przykładzie tworzony jest kluczMyTestKey
rejestru w HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Ustaw wartość za pomocą
SetValue
metody . W tym przykładzie ustawiono wartość ciągu. Wartość "MyTestKeyValue" do "To jest wartość testowa".My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", "MyTestKeyValue", "This is a test value.")
Przykład
W tym przykładzie tworzony jest klucz MyTestKey
rejestru w HKEY_CURRENT_USER, a następnie ustawia wartość MyTestKeyValue
ciągu na This is a test value
wartość .
My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
"MyTestKeyValue", "This is a test value.")
Niezawodne programowanie
Sprawdź strukturę rejestru, aby znaleźć odpowiednią lokalizację klucza. Możesz na przykład otworzyć klucz HKEY_CURRENT_USER\Software bieżącego użytkownika i utworzyć klucz z nazwą firmy. Następnie dodaj wartości rejestru do klucza firmy.
Podczas odczytywania rejestru z aplikacji internetowej bieżący użytkownik zależy od uwierzytelniania i personifikacji zaimplementowanej w aplikacji internetowej.
Bardziej bezpieczne jest zapisywanie danych w folderze użytkownika (CurrentUser) zamiast na komputerze lokalnym (LocalMachine).
Podczas tworzenia wartości rejestru należy zdecydować, co zrobić, jeśli ta wartość już istnieje. Inny proces, być może złośliwy, mógł już utworzyć wartość i mieć do niego dostęp. W przypadku umieszczenia danych w wartości rejestru dane są dostępne dla innego procesu. Aby temu zapobiec, użyj GetValue metody . Zwraca wartość Nothing
, jeśli klucz jeszcze nie istnieje.
Nie jest bezpieczne przechowywanie wpisów tajnych, takich jak hasła, w rejestrze jako zwykły tekst, nawet jeśli klucz rejestru jest chroniony przez listy kontroli dostępu.
Następujące warunki mogą spowodować wyjątek:
Nazwa klucza to
Nothing
(ArgumentNullException).Użytkownik nie ma uprawnień do tworzenia kluczy rejestru (SecurityException).
Nazwa klucza przekracza limit 255 znaków (ArgumentException).
Klucz jest zamknięty (IOException).
Klucz rejestru jest tylko do odczytu (UnauthorizedAccessException).
Zabezpieczenia.NET Framework
Aby uruchomić ten proces, zestaw wymaga poziomu uprawnień przyznanego przez klasę RegistryPermission . Jeśli korzystasz z kontekstu częściowego zaufania, proces może zgłosić wyjątek z powodu niewystarczających uprawnień. Podobnie użytkownik musi mieć odpowiednie listy ACL do tworzenia lub zapisywania w ustawieniach. Na przykład aplikacja lokalna, która ma uprawnienie zabezpieczeń dostępu do kodu, może nie mieć uprawnień systemu operacyjnego. Aby uzyskać więcej informacji, zobacz Code Access Security Basics (Podstawy zabezpieczeń dostępu do kodu).
Uwaga
Zabezpieczenia dostępu kodu (CAS) zostały wycofane we wszystkich wersjach programu .NET Framework i .NET. Najnowsze wersje platformy .NET nie honorują adnotacji CAS i generują błędy, jeśli są używane interfejsy API związane z usługą CAS. Deweloperzy powinni szukać alternatywnych sposobów wykonywania zadań zabezpieczeń.