В реестре Windows у меня есть подраздел \HKEY_CURRENT_USER\HTMPTK
, который имеет два значения: Secret Token
и Token
.Я хочу удалить два значения.
Я попытался использовать key.DeleteValue("Secret Token")
(key
- это переменная RegistryKey
), но я получил UnauthorizedAccessException
с сообщением Невозможно записать в раздел реестра .
Работая с MSDN и Google, чтобы предоставить программе необходимый доступ, я нашел класс RegistryPermission
вместе с некоторыми примерами в качестве руководства.Таким образом, я написал следующий код:
private bool DeleteTokensFromRegistryEngine()
{
RegistryPermission perm = new RegistryPermission(PermissionState.Unrestricted);
perm.AddPathList(RegistryPermissionAccess.AllAccess, "HKEY_CURRENT_USER\\HTMPTK");
RegistryKey key = Registry.CurrentUser.OpenSubKey("HTMPTK");
try
{
if (key != null)
{
key.DeleteValue("Secret Token"); //the same error message here
key.DeleteValue("Token");
}
}
catch (UnauthorizedAccessException U)
{
MessageBox.Show(U.Message);
return false;
}
finally
{
key.Close();
}
return true;
}
Проблема не исчезла.
Что я делаю не так?Как я могу решить эту проблему?
Позже отредактируйте :
- Я дважды проверил, запускаю ли я программу от имени Администратора.Я делаю;
- Ничего подозрительного не сигнализирует Защитник Windows;
- Если это поможет, я могу удалить значения из редактора реестра;