Не удалось установить значение реестра в С#

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

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 { }
 }
 }

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

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

1 ответ

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

использовать:

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

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

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

licensed under cc by-sa 3.0 with attribution.