Определение версии и разрядности Windows в Delphi 6 и применение манифеста

Создание манифеста для программы на Delphi 6 о том что программа поддерживает Windows 10

Начну с того что данный способ определения версий windows для операционных систем выше Windows 8.0 будет корректно работать только при подключении манифеста, а именно например строчкой supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" внутри файла манифеста Вы должны явным образом указать какие операционные системы поддерживает Ваша программа. Иначе версия для ОС старше Windows 8.0 будет определяться как Windows 8.0.

Для создания файла манифеста создайте файл с названием и расширением Project1.exe.manifest и разместите в нём следующий текст в UTF-8 кодировке(я написал в названии файла Project1.exe.manifest поскольку моя программа называлась именно так):

Далее создайте файл с названием и расширением manifest.rc и поместите в него следующий текст:

1 24 "Project1.exe.manifest"

После этого в командной строке перейдите в папке где находятся файлы Project1.exe.manifest и manifest.rc(для перехода в папку используется команда cd адрес) и выполните следующий код:

brcc32.exe manifest.rc

Если команда выполнилась успешно в папке появится файл manifest.res если выполнение произошло с ошибкой, то почитайте какие файлы нужны для выполнения brcc32.exe в этой статье.

Полученный с помощью выполнения указанной выше команды файл manifest.res поместите в папку проекта на Delphi, непосредственно в коде проекта манифест подключается стройкой {$R manifest.res} в implementation в листинге программы, который я приведу в статье ниже данная строчка будет присутствовать.

Файлы для сборки манифеста из примера и получившийся файл .res я разместил в этом архиве, поэтому Вы можете не проделывать все указанные действия а скачать файлы и отредактировать их под себя.

Определение версии Windows в Delphi 6

Определить версию операционной системы Windows в Delphi 6 можно используя Win32Platform, Win32MajorVersion, Win32MinorVersion и Win32BuildNumber. Для примера создадим в Delphi новый проект и на форме разместим Memo1 и Button1 далее заменим весь код проекта на код из листинга:

Для операционной системы Windows 10 Win32MajorVersion будет равен 10, а Win32MinorVersion - 0. Сочетания для других версий операционных систем можно найти в интернет.

Так же версия операционной системы может быть каким то образом определена исходя из менений в Интернет с использованием экземпляра объекта OSVersionInfo, как именно я пока не разбирался.

Функция для Delphi определения является ли Windows 64 битным

Так же иногда может потребоваться узнать является ли Windows на котором запускается программа 64-х разрядным. Для определения можно воспользоваться функцией из листинга ниже, которая возвращает True если программа запущена на 64-х битном Windows. Для использования данной функции подключение выше описанного манифеста не требуется.

Комментарии

Если у Вас возникли вопросы, Вы можете задать их в форме ниже. В частности если Ваш вопрос по Bitrix и что то не получается - можно спросить. Ваш e-mail не публикуется, при этом я отвечу на него если будет что то по теме. Писать необходимо для людей - избегайте сленга, пишите орфографически правильно.

Имя:
E-mail:
Текст комментария:

Вы так же можете прочитать следующие статьи: