Как сделать Вашу программу более дружелюбной в Vista (32 бит)? Тот кто уже использует Висту успел заметить работу нового User Access Control (UAC). Как Вы знаете, это "улучшение" модели безопасности довольно быстро начинает раздражать. Поговорим о том как Вашу программу научить работать с UAC.
Тот кто помнит как создавать XP manifest и впихивать в ресурс 24 вашего проекта поймет меня без труда. Все что вам нужно это заменить старый XP манифест на что то вроде
это если вам нужны привилегии админа
или
если устраивают обычные привилегии текущего пользователя
Стоит заметить, что в обоих случаях возможно появление окна UAC из-за недостатка привилегий. Допустим, вы запустили приложение с манифестом админа под обычным юзером - появится UAC окошко. Такие манифесты будут работать ТОЛЬКО с Виста. Для работы с XP поменяйте
trustInfo xmlns="urn:schemas-microsoft-com:asm.v3
на
trustInfo xmlns="urn:schemas-microsoft-com:asm.v2
Это позволит запускать программу и в XP и в Виста.
Для тех, кто не знал или забыл как создать свой ресурс манифеста в Дельфи 6-7-2007:
Во первый если вы добавили компонент типа XPManifest - уберите его, закройте дельфи, удалите файл {имя проекта}.res,откройте проект в дельфи, перекомпилируйте проект. Это позволит обновить ресурсы .res.
Вручную создайте файл с содержимым описаным выше (это XML кто не в курсе) и назовите его vista.manifest. Попробуйте отрыть его в Internet Explorer - должно открываться без проблем. Если нет - ищите ошибки в тексте.
Создаем файл vista.rc в notepad вида 1 24 vista.manifest
Компилируем файл ресурсов: brcc32 vista.rc
Должен получится файл vista.res который вы прицепляете к программе директивой {$R vista.res} где нибудь в главной форме сразу под uses.
Да. Не забудьте перекомпилировать программу. ;)
В кратце это все - но для тех кому подобные выкрутасы нужны в COM сервере - почитать тут