2013-04-01 19 views
5

w VB.NET mogę utworzyć klucz w rejestrze systemu Windows tak:Sprawdź, czy klucz istnieje w rejestrze systemu Windows z VB.NET

My.Computer.Registry.CurrentUser.CreateSubKey("TestKey") 

I mogę sprawdzić, czy wartość istnieje wklucz tak:

If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\MyKey", _ 
     "TestValue", Nothing) Is Nothing Then 
    MsgBox("Value does not exist.") 
Else 
    MsgBox("Value exist.") 
End If 

Ale jak mogę sprawdzić, czy klucz o określonej nazwie istnieje w rejestrze?

Odpowiedz

6

Jednym ze sposobów jest użycie metody Registry.OpenSubKey

If Microsoft.Win32.Registry.LocalMachine.OpenSubKey("TestKey") Is Nothing Then 
    ' Key doesn't exist 
Else 
    ' Key existed 
End If 

Jednak radziłbym, aby nie skorzystać z tej ścieżki. Metoda OpenSubKey zwracająca Nothing oznacza, że ​​klucz nie istniał w pewnym momencie w przeszłości. Do czasu, gdy metoda zwróci inną operację w innym programie, mogła spowodować utworzenie klucza.

Zamiast sprawdzać klucz istnienia i tworzenie go po fakcie, chciałbym przejść bezpośrednio do CreateSubKey.

+0

TO NIE MOŻE ZAWSZE PRACOWAĆ. 32-bitowa aplikacja w 64-bitowym systemie operacyjnym będzie domyślnie szukała węzła HKLM \ Software \ Wow6432Node. Aby odczytać 64-bitową wersję klucza, musisz określić rejestr RegistryView –

Powiązane problemy