2013-04-01 19 views
5

In VB.NET existiert, kann ich einen Schlüssel in der Windows-Registrierung wie folgt erstellen:Überprüfen Sie, ob ein Schlüssel in der Windows-Registrierung mit VB.NET

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

Und ich kann überprüfen, ob ein Wert innerhalb existiert ein Schlüssel wie folgt aus:

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 

Aber wie kann ich überprüfen, ob ein Schlüssel mit einem bestimmten Namen in der Registrierung vorhanden ist?

Antwort

6

Eine Möglichkeit ist die Registry.OpenSubKey Methode

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

aber ich, dass Sie diesen Weg nicht raten würde zu verwenden. Die OpenSubKey Methode, die Nothing zurückgibt, bedeutet, dass der Schlüssel zu einem bestimmten Zeitpunkt in der Vergangenheit nicht vorhanden war. Zu dem Zeitpunkt, zu dem die Methode einen anderen Vorgang in einem anderen Programm zurückgibt, wurde möglicherweise der Schlüssel erstellt.

Anstatt nach der Existenz des Schlüssels zu suchen und es nach der Tat zu erstellen, würde ich direkt zu CreateSubKey gehen.

+0

Das kann nicht immer funktionieren. Eine 32-Bit-Anwendung auf einem 64-Bit-Betriebssystem prüft standardmäßig den Knoten HKLM \ Software \ Wow6432Node. Um die 64-Bit-Version des Schlüssels zu lesen, müssen Sie die RegistryView angeben –