Как обрабатывать UnauthorizedAccessException из кода пользователя - PullRequest
6 голосов
/ 23 декабря 2011

В приложении Windows, которое я имею, я делаю некоторые изменения в реестре, такие как удаление определенного ключа, в некоторых тестовых сценариях, например, на компьютере с Vista с включенным UAC, я получаю System.UnauthorizedAccessException.Мой код будет выглядеть примерно так:

try
{
    //delete registry keys
}
catch (UnauthorizedAccessException ex)
{
    //handling
}
catch (Exception genEx)
{
    //handling
}

Но приложение все равно будет аварийно завершать работу, не обрабатываясь блоком catch.Есть ли способ, которым я мог бы справиться с этим?

Ответы [ 3 ]

1 голос
/ 07 февраля 2014

Вы, вероятно, выбрасываете еще одно исключение из блока catch.Попробуйте комментировать все строки в блоке catch, и все должно работать нормально.

0 голосов
/ 08 марта 2014

вам нужно установить административный доступ для вашего приложения

для этого просто щелкните правой кнопкой мыши и выберите свойства

и установите флажок Запуск от имени администратора и запустите приложение

для запускакак администратор для всех пользователей, нажмите на кнопку всех пользователей и выберите запуск от имени администратора для всех пользователей. Это всегда будет запускать ваше приложение с правами администратора для всех пользователей

enter image description here

0 голосов
/ 08 марта 2014

Наиболее распространенная и очевидная причина в том, что программа, пытающаяся получить доступ к файлу / файлу, не имеет доступа к идентификатору, под которым она выполняется.

Подробнее здесь MSDN

...