главная программы 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