Утилита, предназначенная для просмотра, изменения, добавления, удаления и извлечения ресурсов в исполняемых (.EXE, .DLL и др.) и ресурсных файлах (.RES) ОС Windows. для формирования своего отдельного DLL файла





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

Приложение позволяет редактированию файлов *.dll; *.exe; *.res; *.rs

  • добавлять;
  • просматривать;
  • видоизменять;
  • переименовывать;
  • удалять ресурсы в данных файлах.

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

Суть действия программы — открывает доступ к изменению иконок, кнопок, стилей, оформлению диалоговых окон "Windows", что в рамках перенастроек параметров системы сделать невозможно. Вы можете полностью изменить интерфейс программы или ресурса под себя или под стиль своего приложения.

Чтобы отредактировать какой-то файл, его нужно открыть в этом приложении. На старте перед вами появятся следующие пункты:

  • AVI. Открытый файл содержит в себе файлы расширения AVI.76.
  • Курсор. В файле содержатся файлы с различными вариациями внешнего вида курсора.
  • Точечный рисунок. В файле имеются точечные изображения.
  • Значок. Файл содержит в себе иконки, значки. Меню.
  • Подразумевает, что в файле различные типы оформления меню.
  • Диалоговые окна. Файле содержит несколько вариаций оформления диалоговых окон.
  • Строки таблицы. Соответственно, в Файле версии строк.
  • Акселераторы. Файл содержит в себе данные о применяемом сочетании клавиш.
  • Информация о версии. Что это значит? В файле данные о версии файла.

 

  • Тип ресурса. Будет обозначено, к какому из вышеперечисленных типов относится данный: курсор, акселераторы, точечные рисунки, диалоговые окна и проч. Название ресурса. Какое наименование данный ресурс имеет в системе "Windows".
  • Язык ресурса. Тут, соответственно, обозначается язык, используемый в файле. Применяется кодировка. Например, для английского — 1033, для русского — 1049. 

Алгоритм действий по изменению ресурса тут несложный:

  • Выберите в каталоге ресурс, который вы хотите изменить. Например, это точечный рисунок в интерфейсе. Примерный путь таков: Bitmap-> 131-> 1033…
  • Далее мы переходим (в русскоязычной вариации программы) в "Действия", выбираем пункт "Замена курсора/точечного рисунка/значка". В англоязычной версии этот путь интуитивно понятен: Action -> Replace Icon/Cursor/Bitmap….
  • Перед вами появится новое окно. Выберите в нем "Открыть файл…" с нужным ресурсом. Им может быть другой точечный рисунок, вариация курсора и т. д. Поэтому важно предварительно загрузить новую версию изображения на свой компьютер.
  • В следующем диалоговом окне выберите нужный ресурс на замену.
  • Нажмите на кнопку "Открыть".
  • Следующее действие — "Изменить".

Вот и все действия.

  • Действия по замене интерфейса тут несколько отличаются от предыдущих:
  • Выберите ресурс, который вы хотите изменить. Например: String Table -> 4 -> 1049.
  • Внесите необходимые изменения.
  • После этого кликните на комплементация скрипта.

Далее произведется комплементация скрипта. Что хорошо, если вы допустили ошибку в перенастройке, появится соответствующее оповещение. Изменения вступят в силу только после того, как проблема будет устранена. 

 

Помимо изменений возможно и добавление своих ресурсов, пунктов меню, или копирование ресурсов из других файлов

Добавление новых пунктов меню самое сложное задание. Программа позволяет пользователю самостоятельно добавлять в интерфейс собственные пункты контекстного меню. Сделать это возможно.

Пример: MENUITEM "ur_desired_string", 12345, MFT_STRING, MFS_GRAYED | MFS_DEFAULT

Разберем что к чему:

  • "ur_desired_string" — текст, который будет отображаться в контекстном меню.
  • 12345 — числовой идентификатор. Он должен отличаться от уже существующих.
  • MFT_STRING — описание текста, который будет представлен.
  • MFS_GRAYED — отключение MENUITEM.
  • Для обратного действия (активации) измените на MFS_ENABLED. MFS_DEFAULT — делает запись полужирной. Параметр можно не изменять.
  • Чтобы у вас не возникало сложностей с добавление нового пункта, отредактируйте только разделы "ur_desired_string" и 12345.
  • Для всех иных параметров оставьте автоматические значения. 

С данными конструкциями меню можно ознакомится https://docs.microsoft.com/ru-ru/windows/win32/menurc/menuitem-statement?redirectedfrom=MSDN

Также в приложении имеется помощь по F1 которая имеет ссылки на  https://docs.microsoft.com/ru-ru/windows/

Также присутствует возможность сохранения ресурсов в виде графических файлов (.ICO, .BMP и т.д.), файлов сценариев (.RC), ресурсных (.RES) и нетипизированных двоичных файлов (.BIN). Кроме того приложение дает пользователю возможность удалять неиспользуемые ресурсы, что позволяет уменьшить размер приложения.

7 Comments

  1. mdie

    Забавно, но в чём отличие от того же Resource Hacker?

    Как минимум не хватает сравнения с бесплатными аналогами и т.д.

    Reply
  2. vik070777

    Сравнительный анализ Вы можете провести самостоятельно, а так в общих чертах тут конструкторов больше по работе с объектами, расшифровывается регистрация в регистрах объектов, а также добавлены шаблоны макетов с сайта https://docs.microsoft.com/ которые необходимы при компоновка тех же dll для 1С, а так пожалуйста пользуйтесь и увидите различие также структурирование данных Style_XML в RH нет

    (1)

    Reply
  3. -vito-

    Подскажите, открывает ли Ваш инструмент 1С-овские ресурсы (.res)? Например backend_ru.res, backend_root.res?

    Уже упомянутый ResourceHacker не может их открыть.

    Reply
  4. SlavaKron
  5. -vito-

    (4) Спасибо за ссылку.

    У меня есть самодельная обработка с подобным функционалом. Проблема в том, что многие ресурсы по имени родителя недоступны. Например, ресурсный файл basicui_root.res. Предполагая, что путь к его файлам будет вида ‘v8res://basicui/report-equal.txt’, получаем ошибку «Каталог не обнаружен».

    Тот же backend_ru.res вообще не содержит ни одного «внятного» имени файла, которое можно было бы прочитать. Но ведь он не пустой. Меня интересуют как раз такие ресурсы, которые не удалось распечатать имеющимися инструментами.

    Reply
  6. SlavaKron

    (5) В указанной публикации доступ к ресурсам осуществляется не через ‘v8res://…’, а через непосредственное чтение двоичных данных res-файла.

    Reply
  7. -vito-

    (6) Скачал. Проверил. Действительно, удалось распаковать backend_ru.res. Спасибо!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *