2013-05-22 5 views
0

J'essaie de créer un programme simple qui va ajouter une valeur à une partie spécifique de mon registre Windows quand j'appuie sur un bouton, mais il ne cesse de l'ajouter au mauvais endroit. J'ai spécifié le bon endroit où je veux que la chose soit ajoutée. Donc, je ne sais pas pourquoi c'est ce que je fais, mais j'aimerais savoir comment je peux le réparer pour l'ajouter au bon endroit. Ceci est mon code à ce jour:Avoir des problèmes avec l'édition du registre VB.NET

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim key As RegistryKey = Registry.LocalMachine 
    Dim subkey As RegistryKey 
    subkey = key.OpenSubKey("HKEY_CURRENT_USER\Software\Ashampoo\Ashampoo MouseTracer\legend", True) 
    My.Computer.Registry.CurrentUser.SetValue("day6Value", 99999999999.999) 
End Sub 

Il place la chose que je veux ajouter dans le répertoire racine HKEY_CURRENT_USER, au lieu de HKEY_CURRENT_USER \ Software \ Ashampoo \ Ashampoo MouseTracer \ légende

Toute aide tout serait être grandement apprécié. Merci!

+0

Retirer HKEY_CURRENT_USER de la chaîne. Et utilisez Registry.CurrentUser au lieu de Registry.LocalMachine –

+0

Merci, Hans. Je vais essayer cela et voir si cela fonctionne. Je rapporterai bientôt. –

Répondre

1

D'après ce que je peux dire, le problème semble être ici:

subkey = key.OpenSubKey("HKEY_CURRENT_USER\Software\Ashampoo\Ashampoo MouseTracer\legend", True) 
My.Computer.Registry.CurrentUser.SetValue("day6Value", 99999999999.999) 

Vous définissez la sous-clé mais, au lieu d'ajouter à cela, vous ajoutez à la CurrentUser.

Essayez ceci:

subkey = key _ 
    .OpenSubKey("HKEY_CURRENT_USER\Software\Ashampoo\Ashampoo MouseTracer\legend", True) 
subkey.CreateSubKey("day6Value") 
subkey.SetValue("day6Value", 99999999999.999) 
1

C#

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"HKEY_CURRENT_USER\Software\Ashampoo\Ashampoo MouseTracer\legend", true); 
key.SetValue("key", "1", RegistryValueKind.String); 
key.close(); 

VB

Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("HKEY_CURRENT_USER\Software\Ashampoo\Ashampoo   MouseTracer\legend", True) 
key.SetValue("key", "1", RegistryValueKind.[String]) 
key.close() 
+0

Merci à vous deux pour votre aide, mais je reçois toujours une exception qui dit "Référence d'objet n'est pas définie sur une instance d'un objet.". J'ai essayé de modifier le code autant que je le pouvais pour essayer de le faire fonctionner, mais maintenant je commence à en avoir vraiment marre. J'ai cherché sur Google une réponse à ce problème et l'un des liens m'a amené sur le site de Microsoft où une autre personne a le même problème que moi. Un des gars a dit "Quand vous appelez OpenSubKey, il retournera null si la clé n'existe pas." Comment diable est-ce possible ?! La clé existe! –

+0

def, fonctionne juste allumé dans une console très rapide. chemin différent était le seul changement et vient d'ajouter une nouvelle clé dword à tester. jeter quelques pauses et voir si vous ne pouvez pas trier à quel point son échec. – origin1tech