Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 5
Регистрация: 11.10.2015
Сообщений: 111
1

Удалить ключ реестра

03.10.2016, 08:26. Показов 4456. Ответов 3

Author24 — интернет-сервис помощи студентам
После добавления ключа, "key1" со значением "0", нужно сделать возможность его удалить, как это сделать?

C#
1
2
3
            key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\SoftFolder");
            key.SetValue("key1", "0");
            key.Close();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2016, 08:26
Ответы с готовыми решениями:

Проверка на ключ из реестра
Хочю проверить существует ли ключ в реестре. Мне выдаёт ошибку не знаю что делать. "Ссылка на...

Как создать ключ реестра в hex
Всем привет! Сегодня столкнулся с проблемой создания ключа: ...

Как создать ключ реестра в hex - C#
public static class A { public static void Start(string ii) { string...

Не могу удалить параметр из реестра
using (RegistryKey key1 =...

3
.NET senior
440 / 358 / 137
Регистрация: 23.09.2016
Сообщений: 980
03.10.2016, 08:31 2
Лучший ответ Сообщение было отмечено Vitokhv как решение

Решение

Vitokhv, например так:
C#
1
2
3
RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\SoftFolder", true); // << открываем ключ с правами на запись
key.DeleteValue("key1");
key.Close();
1
0 / 0 / 5
Регистрация: 11.10.2015
Сообщений: 111
03.10.2016, 09:37  [ТС] 3
Теперь ясно почему не получалось, не подставлял true, не знал, что это права на запись.

Добавлено через 59 минут
Еще такой нюанс, если значения не существует, появляется ошибка - "Значения для этого имени не существует".
Как обойти отсутствие ключей?
0
.NET senior
440 / 358 / 137
Регистрация: 23.09.2016
Сообщений: 980
03.10.2016, 09:44 4
Лучший ответ Сообщение было отмечено Vitokhv как решение

Решение

Vitokhv, у DeleteValue есть перегрузка:
C#
1
2
// Microsoft.Win32.RegistryKey
public void DeleteValue(string name, bool throwOnMissingValue) { ... }
Передавайте вторым параметром false:
C#
1
2
3
RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\SoftFolder", true);
key.DeleteValue("key1", false); // теперь при отсутствии ключа исключение не сгенерируется
key.Close();
2
03.10.2016, 09:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2016, 09:44
Помогаю со студенческими работами здесь

Рекурсивно удалить ветки реестра
Доброго времени суток Сложилась такая ситуация, есть программа, которая хранит много значений в...

Удалить ключ в реестре
Добрый вечер, Помогите пожалуйста, нужно удалить ключ из...

Не считывает ключ реестра в Windows XP (не запускается программа)
Имеется следующий метод: public static string ReadRegistry(string registryPath, string key) {...

Как удалить содержимое ветки реестра
Всем доброго здравия. Подскажите как на C# удалить содержимое ветки реестра...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru