Windows 7 - Отображение сообщения об отказе в доступе, когда пользователь пытается сохранить файл в защищенной папке, а не в виртуальном хранилище.

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

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

Павел


person PPower    schedule 08.09.2010    source источник


Ответы (1)


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

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

Обеспечение поддержки UAC в вашем приложении 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

person Jon Robertson    schedule 09.09.2010
comment
+1 за ссылку на проект кода - буду иметь это в виду для будущего развития - person Gerry Coll; 09.09.2010
comment
Большое спасибо за это - я искал решение без кодирования для этого нашего приложения. работает на XP, Vista и Windows7, а XP не имеет функций виртуализации или ограничений, которые есть у других. - person PPower; 10.09.2010