Как запустить приложение с правами администратора, используя файл Manifest в Visual Studio 2005?

Мне нужно создать приложение, которое должно создавать файлы / папки в «C: \ Program Files», «Users [username]» и Sys32. Также приложение должно внести некоторую запись в реестр.

Это приложение должно работать на Vista и выше. Также на Windows Server 2003 и выше.

Указанные выше операционные системы имеют концепцию контроля учетных записей пользователей (UAC), где для доступа к программным файлам и записи в реестре требуются права администратора.

Я просмотрел множество форумов и обнаружил, что с помощью Microsoft SDK мы можем проверить, есть ли у текущего пользователя права администратора или нет. Но функция «CheckTokenMembership» не работает для Vista и более поздних версий ОС.

Я также нашел решение, в котором можно использовать файл манифеста, чтобы заранее сообщить ОС, что текущее приложение требует прав администратора. Это делается с помощью тэга «requiredExecutionLevel».

Я использую Visual Studio 2005 для создания приложения. Когда мы создаем приложение в Visual Studio, создается файл манифеста по умолчанию. Могу ли я изменить этот файл манифеста, включив в него тег «требуемыйExecutionLevel», чтобы мое приложение всегда выполнялось с правами администратора?

Есть ли какой-либо другой способ, с помощью которого мое приложение запускается с правами администратора, не запрашивая пользователя (администратора или стандартного) для запуска моего приложения как «запуск от имени администратора» ??

Спасибо!

12

Решение

Вы должны найти опцию для этого в свойствах проекта Linker -> Manifest File -> UAC Execution Level. Установите это в requireAdminstrator,

Это заставит сгенерированный по умолчанию манифест включать requestedExecutionlevel что вам нужно, так что вашим пользователям будет автоматически предложено повысить свои привилегии, если они еще не повышены.

Снимок экрана параметров визуальной студии UAC

26

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]