Делаем Delphi программу Vista-совместимой (исходники)

Источник: DelphiPro
alex_sporik

Как сделать Вашу программу более дружелюбной в Vista (32 бит)? Тот кто уже использует Висту успел заметить работу нового User Access Control (UAC). Как Вы знаете, это "улучшение" модели безопасности довольно быстро начинает раздражать. Поговорим о том как Вашу программу научить работать с UAC.

type:, atr:,, title:Делаем Delphi программу Vista-совместимой!

Тот кто помнит как создавать XP manifest и впихивать в ресурс 24 вашего проекта поймет меня без труда. Все что вам нужно это заменить старый XP манифест на что то вроде

type:, atr:,, title:Делаем Delphi программу Vista-совместимой!

это если вам нужны привилегии админа

или

type:, atr:,, title:Делаем Delphi программу Vista-совместимой!

если устраивают обычные привилегии текущего пользователя

Стоит заметить, что в обоих случаях возможно появление окна UAC из-за недостатка привилегий. Допустим, вы запустили приложение с манифестом админа под обычным юзером - появится UAC окошко. Такие манифесты будут работать ТОЛЬКО с Виста. Для работы с XP поменяйте

trustInfo xmlns="urn:schemas-microsoft-com:asm.v3

на

trustInfo xmlns="urn:schemas-microsoft-com:asm.v2

Это позволит запускать программу и в XP и в Виста.

Для тех, кто не знал или забыл как создать свой ресурс манифеста в Дельфи 6-7-2007:

  1. Во первый если вы добавили компонент типа XPManifest - уберите его, закройте дельфи, удалите файл {имя проекта}.res,откройте проект в дельфи, перекомпилируйте проект. Это позволит обновить ресурсы .res.
  2. Вручную создайте файл с содержимым описаным выше (это XML кто не в курсе) и назовите его vista.manifest. Попробуйте отрыть его в Internet Explorer - должно открываться без проблем. Если нет - ищите ошибки в тексте.
  3. Создаем файл vista.rc в notepad вида 1 24 vista.manifest
  4. Компилируем файл ресурсов: brcc32 vista.rc
  5. Должен получится файл vista.res который вы прицепляете к программе директивой {$R vista.res} где нибудь в главной форме сразу под uses.
  6. Да. Не забудьте перекомпилировать программу. ;)

В кратце это все - но для тех кому подобные выкрутасы нужны в COM сервере - почитать тут

Happy Coding!


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=7040