1

J'utilise le code suivant pour ouvrir puis écrire un sous-clé dans le Registreécrire un sbkey dans le registre dans vb.net

Private Sub RegSubKeyCreates(ByVal sKeyPath As String) 
     Dim RegKey As RegistryKey 
     Dim SubKeyParam() As String = Nothing 

     SubKeyParam = Split(sKeyPath, "\") 
     RegKey = Registry.CurrentUser.OpenSubKey(SubKeyParam(0), True).OpenSubKey(SubKeyParam(1), True) 
     RegKey.CreateSubKey(SubKeyParam(0)).CreateSubKey(SubKeyParam(1)) 

End Sub 

Quand je suis en train de créer la sous-clé que je suis geting la erreur

System.NullReferenceException référence d'objet non définie à une instance d'un objet

Je ne comprends pas ce qui se passe. Y a-t-il quelqu'un pour m'aider à ce sujet?

Répondre

1

Merci beaucoup pour ceux qui essaient d'envoyer une réponse. Mais j'ai trouvé la solution moi-même. Donc, je l'ai mis ici au cas où quelqu'un d'autre veut le voir. La solution est dans la mentalité de travailler avec le registre Hive. Doit comprendre que les sous-clés créent une par une, seulement après avoir ouvert le registre à la dernière sous-clé existante. La nouvelle sous-clé ne doit pas avoir de caractère avant ou après "sous-clé" comme s'il vous plaît regarder le code.

Private Sub RegSubKeyCreates(ByVal sKeyPath As String) 
     Dim RegKey As RegistryKey 
     Dim SubKeyParam() As String = Nothing 
     Dim UB As Integer 
     Dim Bound As Integer 
     Dim KeyPath As String 

     SubKeyParam = Split(sKeyPath, "\") 
     UB = UBound(SubKeyParam) 
     For Bound = 0 To UB - 1 
      KeyPath = KeyPath + SubKeyParam(Bound) + "\" 
     Next 
     RegKey = Registry.CurrentUser.OpenSubKey(KeyPath, True) 
     RegKey.CreateSubKey(SubKeyParam(UB)) 

End Sub 

Et le sous lequel conduit c'est:

Select Case RegKeyExists("Software\sKey1") 
      Case True 
      Case False 
       RegSubKeyCreates("Software\skey1") 
       Select Case RegKeyExists("Software\sKey1\sKey2") 
        Case True 
        Case False 
          RegSubKeyCreates("Software\sKey1\sKey2") 
          Select Case RegKeyExists("Software\sKey1\sKey2\sKey3") 
           Case True 
           Case False 
            RegSubKeyCreates("Software\sKey1\sKey2\sKey3") 
            Select Case RegKeyExists("Software\skey1\sKey2\sKey3") 
             Case True 
               SetRegKeyValue("KeyName", "KeyValue", "TheTotalSubKeyPath") 
             Case False 

            End Select 
          End Select 
Questions connexes