На главную

Как записать информацию о версии файла

Обратимся к опциям проекта в Delphi: меню Project -> Options... -> вкладка Version Info (см. Рис. 1). На этй вкладке указывается нужная нам информация. Чтобы получить доступ к ней, поставим крыжик на Include version information in project, что по-русски означает "Включить информацию о версии в проект".

Рис. 1
Рисунок вкладки Version Info

Теперь пройдемся по содержимому вкладки:

Mdule version namber - здесь можно задать номер версии файла. Крыжик на Auto-increment build number позволит автоматически увеличивать номер версии при каждой сборке проекта.


Примечание: Номер версии будет автоматически увеличиваться только в том случае, если произведена сборка проекта (меню Project -> Build Project). Просто при компиляции номер версии не изменяетя.

Mdule attributes - эти флаги можно включить в информацию о версии только с чисто информационной целью. Рассмотрим их значения:
Аттрибут Эффект
Debug build Включается чтобы показать что проект был скомпилирован в режиме отладки.
Pre-release Включается чтобы показать что версия не для коммерческого использования.
DLL Включается чтобы показать что проект использует динамически подключемые библиотеки (DLL).
Special build Включается чтобы показать что данная версия - вариант стандартного релиза.
Private build Включается чтобы показать что данная версия собиралась без использования стандартных процедур релиза.

Language - показывает какая кодовая страница потребуется системе для выполнения данной программы. Выбери планируемый язык программы из выпадающего спика. Шестнадцатиричное значение выбранной локализации появится над выпадающим списком.

Ну, и, наконец, окно со списком ключей. Количество ключей, их состав и значения строго не регламентируются. Ключи можно удалять, добавлять новые, изменять их наименование. По умолчанию предлагается список из десяти ключей, зачения которых понимаются и однозначно интерпретирутся Windows.

Ниже представлен список ключей по умолчанию и трактовка их значения:
Ключ Наименование в Windows Значение ключа
CompanyName Производитель Производитель программного продукта. Обязателен.
FileDescription Описание Описание файла. Вы можете показать эту строку в окне списков при инсталяции. Обязателен.
FileVersion Версия файла Номер версии файла. Обязателен.
InternalName Внутреннее имя Внутреннее имя файла. Если файл не имеет внутреннего имени, используйте оригинальное имя файла без расширения. Обязателен.
LegalCopyright Авторские права Владелец программного продукта или условия его распространения.
LegalTrademarks Товарные знаки Товарные знаки и зарегистрированные торговые марки компаний, программные продукты которых использовались в данном программном продукте.
OriginalFilename Исходное имя файла Оригинальное имя файла без указания пути. Обязателен.
ProductName Название продукта Название программного продукта с которым поставлялся данный файл. Обязателен.
ProductVersion Версия продукта Номер версии программного продукта с которым поставлялся данный файл. Обязателен.
Comments Комментарий Дополнительная информация для уточнения сути. Опционально.

Как видно из представленной таблицы ключи по умолчанию содержат всю интересующую нас информацию о программе (ну, а если этого недостаточно, то добавьте свои собственные ключи). Заполните их значения и откомпилируйте программу. Теперь в Windows можно щелкнуть правой клавишей мыши на файле программы и в свойствах файла появится вкладка с информацией о версии программы как показано ниже (см. Рис. 2):

Рис. 2
Рисунок 'Свойства файла' вкладка 'Версия'


Примечание: Практически вся эта информация прицепляется при компиляции в текстовом виде в качестве довеска в конец файла после кода программы. Она входит в контрольную сумму файла и поэтому считается что подделать ее нельзя. Начинается она с текста StringFileInfo. Дальше идет указатель на рабочую кодовую страницу программы в шестнадцатиричном коде. Потом идут: имя первого ключа и его значение, имя второго ключа и его значение и т.д. по всему списку ключей. Подробную ее структуру можно посмотреть в хелпе по Delphi6. В Delphi7 я информации по структуре уже не нашел :(.

Теперь у нас имеется вся нужная информация. Осталось дело за малым. Считать ее и вывести в удобном для нас виде. Подробнее см. Читать информацию о версии файла.


Список литературы:

  1. Delphi 6 Help
  2. Delphi 7 Help


Hosted by uCoz