За эти два дня поборол следующую проблему. В всеми нами любимой Висте новая система управления аккаунтами и привелегиями пользователей UAC. Помогла мне немного понять её эта статья. Задача банальная была. Пользователь состоит в группе администраторов и моё приложение должно им запускаться с правами админа. По умолчанию в Висте оно запускается с минимальными (или какими-то нормальными) правами. Можно правда делать правый клик и выбирать Run As Administrator. Но это не хорошо, понятно думаю.
Я привожу далее решение, которое работает у меня. Может оно и не самое правильное. Но оно работает.
- Создаём в корне проетка файл с манифестом, пример которого есть в статье. Исправим там имя exe и его описание.
- В VS пишем путь к бинарникам из последнего Platform SDK (для Висты). Среди этих бинарников есть файл mt.exe, который и будет внедрять манифест в exe.
- В постбилд событиях для проекта пишем что-то типа
mt.exe –manifest MyApp.exe.manifest -outputresource:$(TargetPath);1
Смотрим теперь в Висте (огромное спасибо VMware) и видим этот маленький щит на иконке файла приложения. Запускаем дабл-кликом и але-оп - окно с предложением предоставить права админа.
В этот же манифест добавляйте всё, что нужно. Например, я сперва забыл туда дописать, что приложению нужны comctrls минимум версии 6.0 (для отслеживания нажатия кнопок на PropertySheet). Долго искал в чём бок, пока не понял, что бок в манифесте.
Немного ссылок:
Комментариев нет:
Отправить комментарий