Windows 7 - Отображение сообщения «Отказано в доступе», когда пользователь пытается сохранить файл в защищенную папку, а не в виртуальном хранилище - PullRequest
9 голосов
/ 09 сентября 2010

Мы хотим ограничить сохранение файлов в виртуальном хранилище в Vista / Windows 7, если пользователь пытается сохранить файлы из нашего приложения в защищенной папке, такой как «Программные файлы» - мы хотим, чтобы сообщение «Доступ запрещен» отображался пользователь пытается это сделать. Есть ли способ сделать это из нашего приложения Delphi 2009 так же, как MS Word и т. Д.?

Большое спасибо,

Пол

1 Ответ

10 голосов
/ 09 сентября 2010

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

Вы можете сделать это, добавив манифест, запрашивающий запрашиваемый уровень выполнения. В Интернете есть множество статей, описывающих этот процесс. Вот несколько хороших:

Создание вашего приложения UAC Aware http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx

Виртуализация UAC - разрешение обычным пользователям обновлять защищенную область системы http://blogs.technet.com/b/mrsnrub/archive/2010/08/11/uac-virtualization-allowing-standard-users-to-update-a-system-protected-area.aspx

...