2016-05-13 2 views
1

Я создал ключ строки типа и назвал его mykey в реестре по адресу HKEY_USERS\.DEFAULT со значением, установленным на 1234.Как правильно прочитать значение реестра в C#

У меня есть приложение для окон с кнопкой на нем.

Я хочу видеть значение mykey в MessageBox всякий раз, когда нажимается кнопка. Как я могу это достичь?

Это то, что я сделал. Но этот код показывает только HKEY_USERS в MessageBox, а не значение mykey.

private void button1_Click(object sender, EventArgs e) 
    { 
     RegistryKey rk = Registry.Users; 
     rk.GetValue("HKEY_USERS\\.DEFAULT\\mykey"); 

     if (rk == null) 
      MessageBox.Show("null"); 
     else 
      MessageBox.Show(rk.ToString()); 
    } 
+0

Почему это дубликат ict @ PedroG.Dias –

+0

@ PedroG.Dias Как эта ссылка даже ответ ?! Я не понимаю. Мой вопрос находится в контексте, в то время как ссылка, которую вы дали, - которая ссылается на другую ссылку, кстати, - нет. В нем нет даже одного правильного примера. – goofle

+0

Извините, удалите его –

ответ

1

Вы указали User два раза, но вы должны сделать это кто-либо из этого, вот безопасный способ читать значение реестра

private void button1_Click(object sender, EventArgs e) 
    { 
     using (RegistryKey key = Registry.Users.OpenSubKey(".DEFAULT")) 
     { 
      if (key != null) 
      { 
       Object val = key.GetValue("mykey"); 
       if (val != null) 
       { 
        MessageBox.Show(val.ToString()); 
       } 
       else 
       { 
        MessageBox.Show("Null"); 
       } 
      } 

     } 
    } 
1

Вы указываете часть Users. Сначала как улей реестра, а затем в качестве ключа реестра.

Вы можете удалить его из последнего:

rk.GetValue(@".DEFAULT\mykey"); 

Или вы должны начать с реестром без выбора улей:

Registry.GetValue(@"HKEY_USERS\.DEFAULT\mykey"); 
Смежные вопросы