главная программы resource tuner console сборник примеров скриптов
Локализация Version Information в EXE файле
Этот код демонстрирует использование Resource Tuner Console для локализации Version Information, когда информация показывается на разных языках в зависимости от региональных языковых настроек пользователя.
Предлагаемый код скрипта создаёт копию структуры Version Information для русского языка, и заполняет все указанные поля данными, переданными в скрипт из batch файла.
Примечание: при копировании кода скрипта, пожалуйста, убедитесь в отсутствии переносов строк внутри команд. Это требование VBScript: каждая команда должна располагаться целиком в одной строке.
'------------------------------------------------------------------------------ ' ' Этот скрипт показывает, как сделать так, чтобы приложение отображало текстовые поля из ' Version Information на разных языках в зависимости от региональных языковых настроек ' пользователя. ' Для этого скрипт: ' - Обновляет существующую строковую Version Information, подставляя данные в плейсхолдеры; ' - Создаёт копию Version Information для русского языка. ' ' Кроме того: ' - (Опционально) Устанавливает текущую дату в полях TimeDateStamp в заголовке файла ' и в секциях экспорта и ресурсов. ' ' ' Результирующий файл сохраняется в папку "\Demo\Release". ' В файл лога rtc.log записыватся отчёт об изменениях. ' ' Подробнее о работе со скриптами см. Руководство по использованию скриптов ' '------------------------------------------------------------------------------ Sub Main PEFileProxy.PostDebugString "Пересчёт контрольной суммы в заголовке файла разрешён." PEFileProxy.UpdateCheckSum = True PEFileProxy.PostDebugString "Создание резервной копии отключено." PEFileProxy.CreateBackUp = False 'Здесь устанавливаем языковые константы LangID_US = 1033 ' English-US LangID_RU = 1049 ' Русский PEFileProxy.PostDebugString "Открываем файл..." PEFileProxy.OpenFile ".\src\DemoApp1.exe" if not PEFileProxy.Terminated then if PEFileProxy.HasResources then 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 "Значение для кодовой страницы English-US: " & CStr(CP) 'Изменяем существующую строковую File Version Information S1 = "My Company" S2 = "Yet Another Super Application" S3 = "Hot product" S4 = "Copyright \0xA9 2024 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 "Can't open/create Version Info..." end if '-------------------------------Begin Adding New Language (RU) ------------------------------- if ResourcesProxy.OpenVersionInfo("1", LangID_RU, CREATE_IF_NOT_EXIST) then 'Заполняем цифровые значения FileVersion и ProductVersion, используя плейсхолдеры VersionInfoProxy.SetFileVersion %plhd_VMajor%, %plhd_VMinor%, 0, 0, LangID_RU, True, True, True VersionInfoProxy.SetProductVersion %plhd_VMajor%, %plhd_VMinor%, 0, 0, LangID_RU, True, True, True 'Указываем тип файла: VFT_APP - приложение, VFT_DLL - библиотека DLL. VersionInfoProxy.FileType = VFT_APP CP = ScriptUnit.CodePageFromLangID(LangID_RU) PEFileProxy.PostDebugString "Значение для кодовой страницы Russian: " & CStr(CP) 'Добавляем строковую File Version Information для русской версии S1 = "Моя компания" S2 = "Моя Супер Программа" S3 = "Программа для открывания лотка CD-привода" S4 = "Copyright \0xA9 2024 ОАО Моя Компания" 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 '-------------------------------End Adding New Language--------------------------------- 'Опционально вы можете установить единый штамп времени TimeDateStamp в заголовке файла, 'секциях экспорта и ресурсов. 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