главная программы
resource tuner console
сборник примеров скриптов
Локализация Version Information в EXE файле
Этот код демонстрирует использование Resource Tuner Console для локализации Version Information, когда информация показывается на разных языках в зависимости от региональных языковых настроек пользователя.
Предлагаемый код скрипта создаёт копию структуры Version Information для русского языка и заполняет все указанные поля данными, переданными в скрипт из batch файла.
Скрипт выполняет следующие операции над тестовым файлом DemoApp1.exe
(который поставляется вместе с программой):
- Обновляет информацию о версии, в частности записи FileVersion и ProductVersion. Скрипт получает числовые значения для этих записей через плейсхолдеры из пакетного файла LOCALIZE_VERSION_INFO.BAT, расположенного в папке "Demo".
- Редактирует String File Version Information.
- Создает копию блока StringFileInfo для русского языка.
Результирующий файл будет сохранён в папке с именем "Release". Вы можете просмотреть изменения, внесенные в ресурсы файла, проверив файл rtc.log
.
Примечание: при копировании кода скрипта, пожалуйста, убедитесь в отсутствии переносов строк внутри команд. Это требование VBScript: каждая команда должна располагаться целиком на одной строке.
Sub Main PEFileProxy.PostDebugString "Пересчёт контрольной суммы в заголовке файла вкл." PEFileProxy.UpdateCheckSum = True PEFileProxy.PostDebugString "Создание резервной копии отключено." PEFileProxy.CreateBackUp = False ' Здесь устанавливаем языковые константы LangID_US = 1033 ' English-US LangID_RU = 1049 ' Русский язык ' (LangID для других языков можно найти в файле справки) PEFileProxy.PostDebugString "Открываем файл для редактирования..." PEFileProxy.OpenFile ".\src\DemoApp1.exe" if not PEFileProxy.Terminated then if PEFileProxy.HasResources then ' Открываем Version Info для редактирования if ResourcesProxy.OpenVersionInfo("1", LangID_US, CREATE_IF_NOT_EXIST) then ' Заполняем значения FileVersion и ProductVersion, используя плейсхолдеры VersionInfoProxy.SetFileVersion %plhd_VMajor%, %plhd_VMinor%, 0, 0, LangID_US, True, True, True VersionInfoProxy.SetProductVersion %plhd_VMajor%, %plhd_VMinor%, 0, 0, LangID_US, True, True, True ' Определяем кодовую страницу CP = ScriptUnit.CodePageFromLangID(LangID_US) PEFileProxy.PostDebugString "Значение CodePage для English-US: " & CStr(CP) ' Изменяем строковые значения в File Version Information S1 = "My Company" S2 = "Yet Another Super Application" S3 = "Hot product" S4 = "Copyright \0xA9 2025 My Company, Inc." S5 = "Your trademarks here..." S6 = "Super Application" S7 = "5.1.Zero.Null" VersionInfoProxy.EditStringFileInfo "CompanyName", S1, CP, LangID_US, True, True VersionInfoProxy.EditStringFileInfo "FileDescription", S2, CP, LangID_US, True, True VersionInfoProxy.EditStringFileInfo "InternalName", S3, CP, LangID_US, True, True VersionInfoProxy.EditStringFileInfo "LegalCopyright", S4, CP, LangID_US, True, True VersionInfoProxy.EditStringFileInfo "LegalTrademarks", S5, CP, LangID_US, True, True VersionInfoProxy.EditStringFileInfo "ProductName", S6, CP, LangID_US, True, True VersionInfoProxy.EditStringFileInfo "ProductVersion", S7, CP, LangID_US, True, True ResourcesProxy.CloseVersionInfo else ' Предупреждение в случае ошибки PEFileProxy.PostDebugString "Не удалось открыть ресурс Version Info..." end if '------------------------- Добавление нового языка (RU) ------------------------- if ResourcesProxy.OpenVersionInfo("1", LangID_RU, CREATE_IF_NOT_EXIST) then ' Заполняем значения FileVersion и ProductVersion, используя плейсхолдеры VersionInfoProxy.SetFileVersion %plhd_VMajor%, %plhd_VMinor%, 0, 0, LangID_DE, True, True, True VersionInfoProxy.SetProductVersion %plhd_VMajor%, %plhd_VMinor%, 0, 0, LangID_DE, True, True, True ' Указываем общий тип файла: VFT_APP — приложение, VFT_DLL — DLL. VersionInfoProxy.FileType = VFT_APP ' Определяем кодовую страницу CP = ScriptUnit.CodePageFromLangID(LangID_RU) PEFileProxy.PostDebugString "Значение CodePage для RU: " & CStr(CP) ' Добавляем строковую File Version Information для русской версии S1 = "Моя организация" S2 = "Моя Супер Программа" S3 = "Программа для выдвижения лотка CD-привода" S4 = "Copyright \0xA9 2025 ОАО Моя Компания" S5 = "Все права сохранены" S6 = "Супер Программа" S7 = "5.1.Ноль.Ноль" VersionInfoProxy.EditStringFileInfo "CompanyName", S1, CP, LangID_RU, True, True VersionInfoProxy.EditStringFileInfo "FileDescription", S2, CP, LangID_RU, True, True VersionInfoProxy.EditStringFileInfo "InternalName", S3, CP, LangID_RU, True, True VersionInfoProxy.EditStringFileInfo "LegalCopyright", S4, CP, LangID_RU, True, True VersionInfoProxy.EditStringFileInfo "LegalTrademarks", S5, CP, LangID_RU, True, True VersionInfoProxy.EditStringFileInfo "ProductName", S6, CP, LangID_RU, True, True VersionInfoProxy.EditStringFileInfo "ProductVersion", S7, CP, LangID_RU, True, True ResourcesProxy.CloseVersionInfo else ' Предупреждение в случае ошибки PEFileProxy.PostDebugString "Не удалось создать ресурс Version Info..." end if '------------------------Конец добавления нового языка (RU)---------------------- ' При желании вы можете изменить отметку времени TimeDate и установить для ' каждого поля в заголовке PE-файла и секциях экспорта и ресурсов ' единую отметку TimeDate. ' Эта операция необязательна и может быть закомментирована, если не нужна. MyDate = Now PEFileProxy.UpdateDateTimeStamp MyDate 'Сохранение файла PEFileProxy.PostDebugString "Сохраняем изменения в новый файл..." PEFileProxy.SaveAsNewImage ".\release\DemoApp1.exe" end if end if end sub
Чтобы посмотреть и проверить произведённые изменения в самом EXE файле, мы рекомендуем использовать Resource Tuner GUI, визуальный редактор ресурсов.
Примеры скриптов
Установив Resorce Tuner Console на свой компьютер, вы найдёте папку Demo Scripts
в директории с программой. Внутри этой папки находятся 12 папок с примерами скриптов и тестовыми файлами.
Все примеры скриптов готовы к применению. Чтобы запустить выполнение скрипта, выберете соответствующий .BAT файл в любой папке с примером. Resorce Tuner Console произведёт изменения в тестовом EXE файле, находящемся в папке Src
. Результирующий файл будет записан в папку Release
в директории, содержащей скрипт.
Пошаговое руководство по использованию скриптов
Скачать 60-дневную пробную версию Resource Tuner Console