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

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

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

Изменение переменных и строк в Version Information

Этот код демонстрирует использование Resource Tuner Console для редактирования version variables (номеров версии и продукта, название продукта, строчки копирайта) из командной строки.

RTC ScriptПредлагаемый код скрипта вносит изменения в ресурс Version Information во всех EXE или DLL файлах в указанной директории. Если у файла отсутствует ресурс Version Info, он добавляется. Каждое поле в структуре VERSIONINFO под вашим контролем.

Примечание: при копировании кода скрипта, пожалуйста, убедитесь в отсутствии переносов строк внутри команд. Это требование VBScript: каждая команда должна располагаться целиком в одной строке.

'------------------------------------------------------------------------------
'
' Этот скрипт показывает, как пакетно обработать файлы с заданными расширениями 
' (EXE, DLL, SYS, CPL) в указанной директории и.
'
'------------------------------------------------------------------------------
'----------------------------------------------------------------------------
' Процедура ProcessFile
' 
' Назначение:
' 
' Обработка файла: обновляется Version Information.
'----------------------------------------------------------------------------
'
sub ProcessFile (Src_Path, Dest_Path, File_Name)
  LangID = 1033 ' English-US
  CP     = ScriptUnit.CodePageFromLangID(LangID)
  PEFileProxy.OpenFile Src_Path & File_Name
  if not PEFileProxy.Terminated then
    if PEFileProxy.HasResources then
      ResourcesProxy.SetLanguage LangID, DELETE_IF_EXISTS
      if ResourcesProxy.OpenVersionInfo("1", LangID, CREATE_IF_NOT_EXIST) then

        'Заполняем цифровые значения FileVersion и ProductVersion 
        VersionInfoProxy.SetFileVersion  5, 1, 4, 20, LangID, True, True, True
        VersionInfoProxy.SetProductVersion 5, 1, 0, 0, LangID, True, True, True

       'Изменяем существующую строковую File Version Information
        S1 = "My Company"
        S2 = "Yet Another Super Application"
        S3 = "Hot product"
        S4 = "Copyright \0xA9 2017 My Company, Inc."
        S5 = "your trademarks here..."
        S6 = "Super Editor"
        S7 = "Powered by Resource Tuner Console"

        VersionInfoProxy.EditStringFileInfo "CompanyName", S1, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "FileDescription", S2, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "InternalName", S3, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "LegalCopyright", S4, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "LegalTrademarks", S5, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "ProductName", S6, CP, LangID, True, True
        VersionInfoProxy.EditStringFileInfo "Comments", S7, CP, LangID, True, True

        ResourcesProxy.CloseVersionInfo
        PEFileProxy.Compile
        PEFileProxy.SaveAsNewImage Dest_Path & File_Name
      else
        PEFileProxy.PostDebugString "Не могу открыть Version Info..."
      end if
    end if
  end if
end sub	
'----------------------------------------------------------------------------------
'----------------------------------------------------------------------------------
'
' The main routine.
'
' Вначале сканируется указанная Source директория на наличие файлов EXE, DLL, SYS, CPL.
' Затем, для каждого найденного файла вызывается процедура ProcessFile.
'
'----------------------------------------------------------------------------------

Sub Main 
  dim Src_Path, Dest_Path, File_System_Object, Folder_Object, File_Object, File_Collection
  PEFileProxy.UpdateCheckSum = True
  PEFileProxy.CreateBackUp   = False
  ' Указываем путь к Source Folder
  Src_Path = ScriptUnit.CurrentFolder & "src\"
  ' Указываем путь к Destination Folder
  Dest_Path = ScriptUnit.CurrentFolder & "release\"
  ' Сканируем указанную локацию и процессим все найденные файлы.
  set File_System_Object = CreateObject("Scripting.FileSystemObject")
  set Folder_Object      = File_System_Object.GetFolder(src_path)
  set File_Collection    = Folder_Object.Files
  for each File_Object in File_Collection
  ' Получаем расширение файла и переводим все символы в нижний регистр
  ' потому что могут встретится буквы и в верхнем, и в нижнем регистрах
    FL_EXT = LCase(File_System_Object.GetExtensionName(File_Object.name))
  ' Проверяем расширение файла и вызываем процедуру при совпадении с заданным
    If FL_EXT = "exe" or FL_EXT = "dll" or FL_EXT = "sys" or FL_EXT = "cpl" then
      ProcessFile Src_Path, Dest_Path, File_Object.name
      PEFileProxy.PostDebugString "*************************************"
    End If
  Next 
End Sub
'------------------------------------------------------------------------------

Чтобы посмотреть и проверить произведённые изменения в самом EXE файле, мы рекомендуем использовать Resource Tuner GUI, визуальный редактор ресурсов.

Установив Resorce Tuner Console на свой компьютер, вы найдёте папку Demo Scripts в директории с программой. Внутри этой папки находятся 12 папок с примерами скриптов и тестовыми файлами.

Все примеры скриптов готовы к применению. Чтобы запустить выполнение скрипта, выберете соответствующий .BAT файл в любой папке с примером. Resorce Tuner Console произведёт изменения в тестовом EXE файле, находящемся в папке "Src". Результирующий файл будет записан в папку "Release" в директории, содержащей скрипт.

 

Пошаговое руководство по использованию скриптов

 Скачать 60-дневную пробную версию Resource Tuner Console