Редактор ресурсов

   English English  Deutsch Deutsch  Русский Русский

главная  программы  resource tuner console  сборник примеров скриптов

Локализация Version Information в EXE файле

Этот код демонстрирует использование Resource Tuner Console для локализации Version Information, когда информация показывается на разных языках в зависимости от региональных языковых настроек пользователя.

RTC ScriptПредлагаемый код скрипта создаёт копию структуры 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