Внимание: Если у Вас возникли проблемы, после того как Вы сохранили отредактированный файл в Resource Hacker, убедитесь что Вы отключили службу WFP (Защита файлов Windows), используя WFP Patcher (Скачать WFP Patcher).


Если появляется ошибка "Не возможно создать файл..." ("Can't create file..."), это означает, что возможно Вы уже ранее редактировали этот файл и  сохранили в системе. Таким образом в системе уже есть его резервная копия, которую Вы должны удалить прежде, чем  сохраните только что  отредактированный файл снова. Найдите папку, в которой находится этот файл , в названии этого файла будет префикс "_original". Удалите этот  файл и уже после этого сохраняйте файл в Resource Hacker.(Например, если Вы ранее уже редактировали файл shell32.dll, и редактируете его снова, то прежде  чем сохранить этот файл в очередной раз Вы должны будете в папке C:\WINDOWS\system32 найти файл shell32_original.dll и удалить его,  после этого Вы можете спокойно сохранить файл - но делайте это только в том случае если появляется ошибка "Can't create  file..." при сохранении файла).



Краткая инструкция о том как использовать Resource Hacker


Resource Hacker - инструмент для редактирования  системных файлов Windows, таких как файлы с расширениями .exe.dll.cpl, и т.д. Вы можете редактировать эти файлы и можете изменять вид различных диалоговых окон, меню и многих других компонентов Windows.

Эта вводная статья состоит из двух частей:

Часть 1: ОБЩАЯ ИНФОРМАЦИЯ
Часть 2: ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

В первой части приводится информация о том, как открывать/заменять ресурсы и т.д.
В дополнительной части содержится информация о дополнительных возможностях программы, которая ориентирована больше на продвинутых пользователей. В ней рассказывается о добавлении Ваших собственных ресурсов, использование скриптов в Resource Hacker и т.д.

Часть 1: ОБЩАЯ ИНФОРМАЦИЯ


Что представляет собой  Resource Hacker:

Resource Hacker - бесплатная программа для редактирования 32-бит файлов Windows (DLL, EXE, CPL и многих других). Вы можете добавить / удалять / просматривать / переименовывать / изменять существующие ресурсы в файле, при помощи этой программы.

Скачать Resource Hacker

Программа не требует установки. Из скаченного архива нужно извлечь файлы в отдельную папку (желательно в C:\Program Files\Resource Hacker ) после этого запустить. Программа также не нуждается в Регистрации!

Использование Resource Hacker

1. Открытие файлов в Resource Hacker

Когда Вы открываете какой-либо файл в Resource Hacker для редактирования, слева появятся различные каталоги, такие как:
 
AVI (AVI)
Курсор (Cursor)
Точечный рисунок (Bitmap)
Значок ( Icon)
Меню (Menu)
Диалог (Dialog)
Строки таблицы (String Table)
Акселераторы (Accelerators)
Информация о версии (Version Info)
и так далее...



Наличие этих каталогов  для разных файлов может отличаться!

Далее рассмотрим краткое описание этих каталогов:

AVI (AVI): каталог содержит файлы AVI.76
Курсор (Cursor): каталог содержит файлы курсоров.
Точечный рисунок (Bitmap): каталог содержит точечные рисунки.
Значок ( Icon): каталог содержит значки.
Меню (Menu): каталог содержит различные меню.
Диалог (Dialog) : каталог содержит различные диалоговые окна.
Строки таблицы (String Table): каталог содержит различные строки.
Акселераторы (Accelerators): каталог содержит информацию о сочетании клавиш.
Информация о версии (Version Info): каталог содержит информацию о версии файла.


2.Просмотр ресурсов в Resource Hacker

Вы можете просмотреть любой ресурс, содержащийся в файле. Просто разверните структуру каталога и нажмите на название ресурса.
Приблизительно каждый ресурс состоит из 3 частей:

Тип ресурса (Resource Type) - здесь показан тип ресурса - AVI/Bitmap/Menu/Cursor/Icon/String/ и т.д.
Название ресурса  (Resource Name) - данный раздел содержит информацию о названии ресурса.
Язык ресурса (Resource Language) - язык, используемый в файле. Для АНГЛИЙСКОГО ЯЗЫКА – предназначен номер 1033, для РУССКОГО - 1049. Полный Список значений для разных языков вы найдете здесь. 


3.Изменение ресурсов в Resource Hacker

=> Для значка/курсора/точечного рисунка:

1) Выберите ресурс (например, Точечный рисунок (Bitmap-> 131-> 1033).
2) Выберите Action -> Replace Icon/Cursor/Bitmap....  (Действие-> Замена значка/курсора/ точечного рисунка....)



3) Откроется новое окно, щелкните по кнопке Open file with new resource … (выберите то что Вам нужно Icon/Cursor/Bitmap).
4) В диалоговом окне OPEN выберите нужный ресурс и нажмите сначала на кнопку Open, а затем на кнопку Replace.

=> Для других ресурсов, например таких как AVI:

Процедура изменения ресурсов немного отличается.

1) Нажмите на Action -> Replace Other Resource....  (Действие-> Заменить другой ресурс....)
2) Откроется новое окно, нажмите кнопку Open file with new resource
3) Выберите файл и нажмите на кнопку Open.
4) Надеюсь, теперь Вам стало немного понятнее о тех ресурсах, которые были упомянуты ранее.

А теперь рассмотрим значение следующих категорий

Тип ресурса (Resource Type)
Название ресурса (Resource Name)
Язык ресурса (Resource Language)




В поле  Тип ресурса (Resource Type) указывается тип ресурса, например если Вы хотите заменить файл AVI на какой-либо другой, то Вы должны будете использовать только файл формата AVI.

Поле  Название ресурса (Resource Name) дает точное представление о названии существующего ресурса, который Вы хотите заменить на новый.

В поле Язык ресурса (Resource Language) указывается номер языка ресурса (для русского – 1049, для английского 1033).

5) И наконец нажмите на кнопку Replace.

=> Для Меню/строк/диалогов:



Чтобы изменить Строку/меню/диалоговые окна, Выберите нужный ресурс, например, String Table -> 4 -> 1049 и сделав нужные Вам изменения, нажмите на кнопку Compile Script. После этого будет скомпилирован скрипт и если что-то пойдет не так, как надо появится сообщение об ошибке, для того чтобы Вы смогли исправить проблему!

Часть 2: ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

1. Добавление Ваших собственных ресурсов


а) Добавление новых Bitmaps/Icons/Cursors/AVIs
(точечных рисунков/значков/курсоров/AVI)


1) Нажмите Action -> Add a new Resource....  (Действие-> Добавить новый ресурс....)
2) Нажмите на кнопку Open file with new resource  (Открытыть файл с новым ресурсом)



3) Выберите нужный ресурс и нажмите кнопку Open.
4) Выберите Resource Type/Name/Language  (Тип/название/язык ресурса).
(Помните: Название ресурса должно отличаться от существующего названия ресурсов).
5) Нажмите на кнопку Add Resource.


б) Добавление новых пунктов меню:

Вы можете также добавить Ваши собственные пункты меню, а также дополнительное меню (например, Ваше имя) в Контекстном меню рабочего стола и т.д.

1)  Итак, предположим, что Вы захотели добавить свой собственный пункт в меню, например, Menu -> 215 -> 1049 и добавляем линию, где-нибудь внутри POPUP "" (всплывающего сообщения) или что-нибудь другое как например показано в следующем примере:

MENUITEM "ur_desired_string", 12345, MFT_STRING, MFS_GRAYED | MFS_DEFAULT


Здесь:

"ur_desired_string" - текст, который будет отображаться на экране.
12345 - идентификатор, который должен отличаться от других menuitems.
MFT_STRING - описывает какой текст будет содрежаться в Menuitem.
MFS_GRAYED - отключает наш menuitem. Вы можете также изменить его на MFS_ENABLED, чтобы включить его.
MFS_HILITE - автоматически выбирает наше menuitem. Можете ничего не менять.
MFS_DEFAULT - устанавливают наш menuitem полужирным, Вы можете также оставить данный параметр без изменений.

В принципе Вы можете отредактировать только параметры MENUITEM "ur_desired_string" и 12345, а другие параметры Resource Hacker добавит автоматически.


в) Добавление недавно добавленных ресурсов в диалоговые окна

Итак, Вы уже научились добавлять свои собственные значки, точечные изображения, AVI, а что если Вы захотите добавить их в диалоговое окно так, чтобы они отображались, когда открывается какое-нибудь диалоговое окно (диалоговое окно запуска, диалоговое окно отражающее процесс копирования и т.д.).

1) Для начала выбираем нужное диалоговое окно, в котором Вы хотите добавить Ваш собственный ресурс, например, в файле  shell32.dll  - Dialog -> 1020 -> 1049.
2) Щелкните правой кнопкой мыши по диалоговому окну



3) Откроется новое окно, где Вы увидите много параметров, таких как BITMAP, LABEL, ICON, BUTTON, SysAnimate32 (для AVI) и т.д.
4) Просто нажмите на нужный параметр, используйте Ваш собственный добавленный точечный рисунок (BITMAP) нажав кнопку BITMAP control , или используйте Ваш собственный ранее добавленный AVI, нажав на SysAnimate32. Вы может также добавить Дату/Отображение текущего времени, нажав на SysDateTimePick32 control.





5) Не забывайте заполнить поле Caption (Заголовок). Итак, введенное название ресурса в строке Caption  должно совпадать с названием добавленного нами ресурса  Например, если Вы добавили Точечный рисунок и назвали его как 401, то в строке Caption Вы должны также указать 401.



P.S: Для изменения AVI (SysAnimate32), вы должны добавить # перед названием в Caption. Например, если оригинальный файл имеет название 144 AVI, то измененный файл будет иметь  название #144 в строке Caption (Название).

6) Наконец нажать кнопку OK и Compile the script для того чтобы скомпилировать скрипт.
7) Вы можете изменить позицию нужных Вам ресурсов в диалоговом окне, просто перетаскивая их  на  нужную позицию.

2. Использование скриптов в Resource Hacker

Мы также можем использовать Resource Hacker из командной строки доступную через интерфейс программы, тем самым автоматизировав долговременные задачи, экономя свое время.

Вы можете использовать скрипты в 2 формах:

1) Отдельная команда
2) Многократные команды

Отдельная Команда

Некоторые команды имеют следующий формат:

Code
-add ExeFileName, ResultingFileName, ResourceAddress, ResourceType, ResourceName,
-addskip ExeFileName, ResultingFileName, ResourceAddress, ResourceType, ResourceName,
-addoverwrite ExeFileName, ResultingFileName, ResourceAddress, ResourceType, ResourceName,
-modify ExeFileName, ResultingFileName, ResourceAddress, ResourceType, ResourceName,
-extract ExeFileName, ResourceAddress, ResourceType, ResourceName,
-delete ExeFileName, ResultingFileName, ResourceType, ResourceName


Здесь:

ExeFileName:
оригинальный файл, который мы хотим редактировать в Resource Hacker
ResultingFileName: название, которое мы хотим дать, когда мы сохранили файл.
ResourceAddress: адрес ресурса (например местоположение точечного рисунка на жестком диске).
ResourceType: тип ресурса (например, такие как BITMAP, AVI, и т.д.).
ResourceName: название ресурса (например, такие как 131, 1020, и т.д.).

Например:  ResHacker.exe - addoverwrite explorer.exe, explorer1.exe, MyImage.bmp , bitmap, 143,

 Многократные команды

Использовать уже готовый ранее написанный Вами скрипт, для этого Вам нужно сначала написать скрипт в блокноте, сохранить его на жестком диске и затем ввести следующую команду:

ResHacker.exe - script ScriptFileName

Здесь:
ScriptFileName - название файла скрипта, который был создан ранее в блокноте.

Формат файла скрипта:

Code
[FILENAMES]
Exe=
SaveAs=
Log=
[COMMANDS]
-addoverwrite ResourceAddress, ResourceType, ResourceName


Здесь:

EXE = текущее местонахождение файла
SaveAs = местонахождение файла после сохранения
Log= местоположение ЖУРНАЛА, который регистрирует все процессы.

В разделе [COMMAND] мы вводим команды, которые будут выполняться.

Вы можете пропустить пункт LOG entry, тогда Resource Hacker автоматически создаст ЖУРНАЛ "ResHacker.log".
 
Внимание:
Если Вы столкнулись с проблемой, сохранения отредактированных файлов, то используете WFP Patcher, который можно скачать с нашего сайта.