Можно ли удалить все разделы реестра, которые можно удалить, не останавливая ни один не удаляемый ключ с помощью C #?
Когда вы используете GUI редактора реестра для удаления ключей и удаляете дерево подразделов с неразборчивыми ключами внутри (например, ключ используется, недостаточно прав), оно будет пытаться удалить все, что может, без отмены ключей, прерывающих операцию.
Похоже, что это не так с библиотекой Microsoft.Win32
в C #.
Использование внешней программы, такой как reg.exe, работает, но я пытаюсь найти решение, которое не требует внешнего приложения.
private void DelHKLM()
{
try
{
using (RegistryKey desiredKey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true))
{
desiredKey.DeleteSubKeyTree("Policies");
}
}
}
Ожидаемый результат состоит в том, что программа не дает никаких исключений и удаляет дерево подразделов «Политики», но вместо этого выдает UnauthorizedAccessException
, поскольку ключи используются.
Примечание. Я запускаю программу от имени администратора и у меня есть права доступа к ключу, как показано в редакторе реестра.
Итак, мой вопрос: Есть ли способ добиться того, что делает редактор реестра в C #, предпочтительно с использованием собственных библиотек?