У меня есть приложение для форм 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 Я мало что знаю о реестре. Извините, если моя терминология неверна. Надеюсь, вы понимаете, к чему я пытаюсь. Я нашел вышеуказанный код в каком-то другом вопросе на этом сайте. Я не знаю, почему это не работает.
'если (ключ == NULL) {key.SetValue ...} ' это плохая идея. Если он не существует, вы добавляете его, вы не устанавливаете значение несуществующего ключа. – Dirk
Я думал, что Setvalue создаст ключ, если он не существует. Большое спасибо. –
Вместо этого вызывается исключение NullReferenceException, поскольку вы не можете вызвать метод объекта, который не существует. – Dirk