2012-03-31 5 views
4

При удалении файла в проводнике Windows (Windows 7), если права администратора необходимы для удаления файла, отображается это диалоговое окно:Как реализовать пользовательский пользовательский интерфейс UAC?

enter image description here

Есть ли способ, чтобы достичь подобного эффекта в моем приложение?

В настоящее время я начала процесса «как администратор», чтобы выполнить такой же действия (замена файла, а не удаляя его), так что пользователь показан общий диалог UAC, спрашивая:

«Do вы хотите разрешить следующей программе вносить изменения в этот компьютер? "

Возможно ли использовать полезный пользовательский интерфейс Explorer (в отличие от общего диалогового окна UAC) в стороннем приложении?

Я предполагаю, что нет, так как это позволит третьим сторонам поднять привилегии подлым способом.

ответ

2

Значение по умолчанию для Windows 7 для большинства компонентов системы не отображает диалоговое окно UAC.

Если вы измените настройку на приглашение всегда, вы увидите, что нажатие кнопки «Продолжить» в диалоговом окне «Проводник» создало бы обычное приглашение UAC.

Как несистемный двоичный, ваш код будет всегда подскажет, кроме наиболее мягкому настроек UAC (никогда не подскажет.)

+0

Да, это правда: вы можете отображать кнопку ввода высоты (в данном случае - Продолжить) в любом пользовательском интерфейсе, но процесс возвышения всегда будет показывать вам запрос подтверждения системы независимо от того, начинаете ли вы новый процесс или создаете повышенную COM-объект. –

4

Button_SetElevationRequiredState Используйте, чтобы добавить экран к кнопке. Когда пользователь нажимает кнопку, use the COM elevation moniker, чтобы создать вспомогательный объект.

+0

Спасибо за указатель на настройку значка экрана. Я закончил использование SendMessage, потому что у меня не было правильных #defines, чтобы использовать эту функцию/макрос (и я не хотел вдаваться в f # # с аргументом #define _Win32). – mackenir

+0

Я не могу использовать COM, поэтому просто запускаю экземпляр exe в качестве администратора, с некоторыми специальными параметрами cmdline, инструктирующими его «делать материал администратора». – mackenir

+0

Значок щита - это всего лишь предупреждение пользователю: «Если вы нажмете эту кнопку, кто-то попросит у вас разрешения подняться, так что не удивляйтесь». Один из способов запроса разрешения на высоту - использовать COM, но также работает командная строка. –

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