Я пробовал весь день, чтобы заставить это работать, и я не могу понять, в чем проблема. Я собрал небольшое приложение Windows Form для ручной очистки остатков от установки, которая удаляется по всей компании. Все это делается за исключением очистки реестра.Не удается удалить раздел реестра Visual Studio Express 2013
Все, что я просто пытаюсь сделать, это удалить дерево subkey/subkey. Я использую приведенный ниже код, чтобы сделать это в разных местах. Каждый раз, когда я нажимаю кнопку, генерируется исключение, указывающее, что раздел не существует. Я triple проверил местоположения subkeys и не могу иметь никакого смысла это. Похоже, у меня есть разрешение на ключ, так как я зарегистрирован как администратор, а группа «Администраторы» имеет полный доступ к ключу; но он не бросает ArgumentException независимо от того, что:
Private Sub btnRegDelete_Click(sender As Object, e As EventArgs) Handles btnRegDelete.Click
My.Computer.Registry.LocalMachine.DeleteSubKey("Software\test")
End Sub
Должно быть, просто не так ли? Я также попытался использовать логическое значение:
Private Sub btnRegDelete_Click(sender As Object, e As EventArgs) Handles btnRegDelete.Click
My.Computer.Registry.LocalMachine.DeleteSubKey("Software\test", true)
End Sub
, а также открытие родительский ключ:
Public Sub fnDelete()
Dim oRegKey As RegistryKey
oRegKey = Registry.LocalMachine.OpenSubKey("SOFTWARE", True)
oRegKey.DeleteSubKeyTree("test")
oRegKey.Close()
End Sub
Private Sub btnRegDelete_Click(sender As Object, e As EventArgs) Handles btnRegDelete.Click
fnDelete()
End Sub
Это прекрасно работает в улье current_user, но не под LocalMachine.
Любые предложения были бы замечательными. Я уверен, что мне не хватает чего-то глупого, и это должно быть так просто, просто не знаю, что.
Вы управляли администратором? (вход в систему как администратор больше не означает в Windows). Какая версия Windows? – TyCobb
Эй, спасибо, что подобрали это. То же самое, если я запускаю приложение напрямую как asministrator. С попыткой ... Catch statement, по-прежнему бросает «не может удалить дерево подраздела, потому что подраздел не существует» для ex-сообщения. Есть ли определенный набор кода, который вы бы рекомендовали использовать для редактирования LocalMachine Hive? – ganjeii
Итак, я думаю, что, возможно, понял это, но я не уверен, как это исправить. Я запускаю 64-разрядную ОС Windows 7 Pro. Кажется, что приложение работает как x86 и выглядит по умолчанию в ключе «SOFTWARE \ wow6432Node», хотя я говорю ему, чтобы посмотреть в «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ», это действительно выглядит в «SOFTWARE \ wow6432Node». Несомненно, мне нужно, чтобы вы могли видеть и то, и другое. Есть ли способ сказать приложение о x64, но все же сохранить его совместимым с x86? – ganjeii