2014-09-23 3 views
0

У меня есть приложение для форм Windows, которое называется system_module. И я хочу, чтобы он запускался с окнами. Вот мой код для этого.Невозможно установить значение реестра в C#

private void Form1_Load(object sender, EventArgs e) 
    { 

     string keyName = @"Software\\Microsoft\\Windows\\CurrentVersion\\Run"; 
     using (RegistryKey key = Registry.CurrentUser.OpenSubKey(keyName, true)) 
     { 
      if (key == null) 
      { 
       // Key doesn't exist. 
       key.SetValue("system_module", "Application Location"); 
      } 
      else { } 
     } 
    } 

Но это не создает значение в перспективе/ Я обыскал весь реестр и не нашел ничего, ссылаясь на system_module за исключением некоторых несущественных значений.

P.S Я мало что знаю о реестре. Извините, если моя терминология неверна. Надеюсь, вы понимаете, к чему я пытаюсь. Я нашел вышеуказанный код в каком-то другом вопросе на этом сайте. Я не знаю, почему это не работает.

+2

'если (ключ == NULL) {key.SetValue ...} ' это плохая идея. Если он не существует, вы добавляете его, вы не устанавливаете значение несуществующего ключа. – Dirk

+0

Я думал, что Setvalue создаст ключ, если он не существует. Большое спасибо. –

+1

Вместо этого вызывается исключение NullReferenceException, поскольку вы не можете вызвать метод объекта, который не существует. – Dirk

ответ

1

Вы не используете SetValue() - потому, что "Run" -Key существует

использования:

if (key != null) 
     { 
      // Key doesn't exist. 
      key.SetValue("system_module", "Application Location"); 
     } 

и обрабатывать ключ == нуль тоже добавить ключ Run (по умолчанию этот ключ существует)

если вы не хотите, чтобы изменить ключ, если ваш «system_module», «Применение Location» уже существует, вы должны запросить значения под «ключ»

+0

Хорошо. Я вижу сейчас. Благодарю. У меня есть еще один вопрос. Увеличивает ли значение setvalue() значения, если оно существует? –

+0

@EmpereurAiman ​​- Да SetValue() обновляет значение! - btw: PLZ отметить этот ответ в качестве решения, если это вам помогло – Cadburry

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