Есть ли способ определить, является ли указанный пользователем каталог защищенным в Windows 7 / Vista с включенным контролем учетных записей (и не запущенным от имени администратора) - PullRequest
3 голосов
/ 23 сентября 2011

Есть несколько точек, в которых пользователь может указать, в какой каталог должны быть сохранены данные. Я бы хотел уведомить пользователя, если он выбрал каталог, защищенный Windows.Я могу просто написать файл, чтобы узнать, позволяет ли мне ОС, потому что UAC запишет файл в другой каталог.

1 Ответ

2 голосов
/ 23 сентября 2011

Вы можете попытаться записать временный файл в каталог. Если каталог защищен UAC и вы не используете привилегии администратора, вы получите ошибку System.UnauthorizedAccessException .

Edit: Если @JoeWhite правильно, и вы пытаетесь определить, когда на ваше приложение влияет виртуализация UAC. Я не верю, что вы можете обнаружить это в самом приложении. Вызовы на запись будут корректироваться ОС автоматически, без уведомления вашего приложения.

Подробнее о том, как работает виртуализация UAC, читайте в этой статье в блоге группы Windows .

Это влияет только на эти конкретные случаи:

Ваше приложение записывает в Program Files, каталоги Windows или системные корневые (обычно диск C) папки

Ваше приложение пишет в Windows реестр, специально для HKLM / Software

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...