6

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

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

Но приложение будет по-прежнему идут сбои, не обрабатываются блоком улова.. Есть ли способ справиться с этим?

+0

Вы уверены, что код, который вызывает приложение к краху в заявлении попробовать? –

+0

http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx –

+0

Вы должны уметь это исключение. Может быть, вы можете дать нам больше кода (я имею в виду, по крайней мере, вызов, который вызывает исключение), чтобы помочь исправить это. – ken2k

ответ

1

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

+0

+1 пожалуйста, уточните немного, наконец, это было ** правильно ** ответ и @niranjan может/должен принять его! –

+0

Я нашел этот вопрос в день публикации вопроса и добавил его в качестве комментария ... Я забыл отметить его как ответил .. :(извините, ребята ... если это вызвало путаницу :) @Adriano: Thanks для напоминания .. Я отмечу это как ответ .. :) – Niranjan

0

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

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

+0

why -1? может кто-нибудь говорить об этом? – Baljeetsingh

+0

+1 .. Да, это была проблема .. Я добавил комментарий в свой вопрос сам. Хотя я не добавил в качестве ответа и отметю его :(.. – Niranjan

+0

Я не заметил комментария, но маркировка может помочь другому пользователь для поиска правильного ответа. – Baljeetsingh

0

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

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

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

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

enter image description here

Смежные вопросы