Интеграция манифеста в программу на Delphi
В версии Delphi XE2, на конец то, была добавлена возможность подключать кастомный манифест к проекту. А до этого выкручивались как могли.
В основном, при необходимости подключить свой манифест (обычно для получения прав администратора), шли следующим путем:
- Создавали файл манифеста ProjectName.exe.manifest
- Создавали файл ресурсов manifest.rc
- Далее компилируется файл ресурсов
- Откомпилированный файл ресурсов подключается к проекту
- И последнее действие, это отключение "runtime themes". В результате чего все интерактивные элементы приложения принимали классический вид. Обойти данный пункт нельзя было, так как в противном случае к исходной программе подключалось два манифеста, и достичь желаемого результата не удавалось.
У меня, в свое время, возникла острая необходимость получить права администратора и при этом использовать "runtime themes". Методом "научного тыка" я определил, что delphi генерирует файл манифеста при создании нового проекта и кладет его в самый конец файла ресурсов ProjectName.res. И, что примечательно, манифест создается один раз и больше не изменяется. Я решил подменить манифест и для этой цели сделал небольшую программу. Единственная проблема состоит в том, что так как файл ресурсов уже откомпилирован, то есть бинарный, количество символов во внедряемом манифесте не должно превышать количество символов исходного манифеста.

Программа простая и интуитивно понятная. Кастомный манифест можно загрузить из файла или прописать вручную. Функция интеграции находится тут «Файл»->«Интегрировать манифест». Выбранный файл ресурсов перезаписывается, а старая копия сохраняется с расширением «bk».
Если возникает проблема с количеством символов, то можно манифест подредактировать прямо в окне программы. Как вариант можно по удалять лишние пробелы и переносы строк.
Скачать:
![]() | Программа для интеграции кастомного манифеста в проекты на Delphi версии ниже XE2 с исходниками |