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

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

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

Edit Icons: Замена икон в файле иконами из .ICO файла

Этот код демонстрирует использование ResTuner Console для замены икон в EXE или DLL файлах.

Предлагаемый код скрипта добавляет или заменяет иконы в тестовом EXE файле на иконы из .ico файлов, расположенных в папке "\Demo\Src". После замены скрипт выводит схему обновлённого дерева ресурсов в лог файл и/или на экран. Результирующий файл сохраняется в папку "\Demo\Release".

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

'------------------------------------------------------------------------------
'
' Этот скрипт показывает, как добавить или заменить указанные иконы в тестовом приложении:
'   - Заменить главную икону новыми из .ICO файла (включая  
'     256x256 PNG-compressed Vista икону); 
'   - отсортировать добавленные иконы в правильном порядке; 
'   - добавить еще две иконы в новую созданную Icon Group; 
'   - вывести изменения в дереве ресурсов в лог-файл. 
'
' Скрипт добавляет или заменяет иконы в тестовом EXE файле на иконы
' из .ico файлов, расположенных в папке "\Demo\Src". 
'
' Результирующий файл сохраняется в папку "\Demo\Release".
' В файл лога rtc.log записыватся отчёт об изменениях.
' 
' Подробнее о работе со скриптами см. Руководство по использованию скриптов
'
'------------------------------------------------------------------------------

Sub Main
  PEFileProxy.PostDebugString "Пересчёт контрольной суммы в заголовке файла разрешён." 
  PEFileProxy.UpdateCheckSum = True 

  PEFileProxy.PostDebugString "Создание резервной копии отключено." 
  PEFileProxy.CreateBackUp = False 

  PEFileProxy.PostDebugString "Открываем файл..."
  PEFileProxy.OpenFile ".\demo\src\DemoApp1.exe"
  if (PEFileProxy.Terminated) then
    PEFileProxy.PostDebugString "При открытии файла произошла ошибка."
  else
    PEFileProxy.PostDebugString "Файл открыт успешно."
    if (not PEFileProxy.HasResources) then
      PEFileProxy.PostDebugString "Файл не содержит ресурсов."
    else
      PEFileProxy.PostDebugString "Файл содержит ресурсы."

      LangID = 0 ' Default

      PEFileProxy.PostDebugString "Заменяем/добавляем главную икону приложения..."
      ResourcesProxy.ChangeIcon "", LangID, CREATE_IF_NOT_EXIST, REPLACE_IF_ITEM_EXISTS,
 ".\src\vista_iconset.ico"

      PEFileProxy.PostDebugString "Добавляем иконную группу NewGroup с двумя новыми иконами..."
      ResourcesProxy.ChangeIcon "NewGroup", LangID, CREATE_IF_NOT_EXIST, REPLACE_IF_ITEM_EXISTS,
 ".\demo\src\icon_3_32x32_8bit.ico"
      ResourcesProxy.ChangeIcon "NewGroup", LangID, CREATE_IF_NOT_EXIST, REPLACE_IF_ITEM_EXISTS,
 ".\demo\src\icon_4_16x16_32bit.ico"

      PEFileProxy.PostDebugString "Компилируем все изменения..."
      PEFileProxy.Compile

      PEFileProxy.PostDebugString ""
      PEFileProxy.PostDebugString "Дерево Ресурсов - построено RTC:"
      ResourcesProxy.ResourceTreeToLog
      PEFileProxy.PostDebugString ""

      PEFileProxy.PostDebugString "Сохраняем изменения в новый файл..."
      PEFileProxy.SaveAsNewImage ".\demo\release\DemoApp1.exe"
    end if
    PEFileProxy.PostDebugString "Закрываем файл..."
    PEFileProxy.CloseFile
  end if
end Sub
'------------------------------------------------------------------------------

Закончив замену икон, RTC выводит схему обновлённого дерева ресурсов в лог файл, где вы можете проверить сделанные изменения:

Дерево Ресурсов - построено RTC:
----------------------------------------
 [Cursor (1)]
     1: 32x32 1b, Neutral (0)
     2: 32x32 1b, Neutral (0)
     3: 32x32 1b, Neutral (0)
     4: 32x32 1b, Neutral (0)
     5: 32x32 1b, Neutral (0)
     6: 32x32 1b, Neutral (0)
     7: 32x32 1b, Neutral (0)
 [Bitmap (2)]
     BBABORT: Neutral (0)
     BBALL: Neutral (0)
     BBCANCEL: Neutral (0)
     BBCLOSE: Neutral (0)
     BBHELP: Neutral (0)
     BBIGNORE: Neutral (0)
     BBNO: Neutral (0)
     BBOK: Neutral (0)
     BBRETRY: Neutral (0)
     BBYES: Neutral (0)
     CDROM: Neutral (0)
     CLOSEDFOLDER: Neutral (0)
     CURRENTFOLDER: Neutral (0)
     EXECUTABLE: Neutral (0)
     FLOPPY: Neutral (0)
     HARD: Neutral (0)
     KNOWNFILE: Neutral (0)
     NETWORK: Neutral (0)
     OPENFOLDER: Neutral (0)
     RAM: Neutral (0)
     UNKNOWNFILE: Neutral (0)
     XCLR_BMP: German - Switzerland (2055)
 [Icon (3)]
     * 1: 32x32 4b, Russian (1049)
     2: 32x32 8b, Russian (1049)
     + 3: 16x16 4b, Neutral (0)
     + 4: 32x32 8b, Neutral (0)
     + 5: 32x32 4b, Neutral (0)
 [String (6)]
     4080: Neutral (0)
     4081: Neutral (0)
     4082: Neutral (0)
     4083: Neutral (0)
     4084: Neutral (0)
     4085: Neutral (0)
     4086: Neutral (0)
     4087: Neutral (0)
     4088: Neutral (0)
     4089: Neutral (0)
     4090: Neutral (0)
     4091: Neutral (0)
     4092: Neutral (0)
     4093: Neutral (0)
     4094: Neutral (0)
     4095: Neutral (0)
     4096: Neutral (0)
 [RC Data (10)]
     DVCLAL: Neutral (0)
     PACKAGEINFO: Neutral (0)
     TFORM1: Neutral (0)
 [Cursor Group (12)]
     32761: Neutral (0)
     32762: Neutral (0)
     32763: Neutral (0)
     32764: Neutral (0)
     32765: Neutral (0)
     32766: Neutral (0)
     32767: Neutral (0)
 [Icon Group (14)]
     * MAINICON: Russian (1049)
     XCLR_ICON: German - Switzerland (2055)
     + 1: Neutral (0)
 [Version (16)]
     1: English (US) (1033)
----------------------------------------
Легенда: [Имя (№пп)] - Тип; "+" - Добавлено; "-" - Удалено; "*" - Изменено

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

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

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

 

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

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