2013-05-22 4 views
0

Я пытаюсь создать простую программу, которая добавит значение в определенную часть моего реестра Windows, когда я нажму кнопку, но она добавляет ее в неправильное место. Я указал правильное местоположение, где хочу, чтобы вещь была добавлена. Итак, я не знаю, почему это так, но я хотел бы узнать, как я могу это исправить, поэтому он добавит его в нужное место. Это мой код до сих пор:Устранение проблем с редактированием реестра 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 

Он помещает вещь, которую я хочу добавить в корневой директории HKEY_CURRENT_USER, вместо HKEY_CURRENT_USER \ Software \ Ashampoo \ Ashampoo MouseTracer \ легенда

Любая помощь на всех будет будем очень благодарны. Благодаря!

+0

Удалить HKEY_CURRENT_USER из строки. И используйте Registry.CurrentUser вместо Registry.LocalMachine –

+0

Спасибо, Ханс. Я попробую это и посмотрю, работает ли это. Я скоро отправлю отчет. –

ответ

1

Из того, что я могу сказать, что проблема выглядит здесь:

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

Вы можете установить раздел, но затем, вместо того, чтобы добавлять к нему, вы добавляете к CurrentUser.

Попробуйте это:

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

Благодарим вас за помощь, но я получаю исключение, в котором говорится: «Ссылка на объект не установлена ​​в экземпляр объекта». Я попытался изменить код настолько, насколько мог, чтобы попытаться заставить его работать, но теперь это просто доходит до того, что я начинаю сильно разозлиться. Я искал Google для ответа на эту проблему, и одна из ссылок привела меня на сайт Microsoft, где у другого человека такая же проблема, как и я. Один из парней сказал: «Когда вы вызываете OpenSubKey, он возвращает null, если ключ не существует». Как, черт возьми, это возможно? Ключ действительно существует! –

+0

def, работает, просто выстрелил в консоль очень быстро. другой путь был единственным изменением и просто добавил новый ключ dword для тестирования. бросьте некоторые перерывы и посмотрите, не можете ли вы разобраться, в какой момент это произойдет. – origin1tech

Смежные вопросы