как редактировать ресурсы?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

как редактировать ресурсы?

Сообщение arthur2 » 09.03.2012 (Пт) 19:38

Как из аддина редактировать файл res, подключенный к проекту?
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 09.03.2012 (Пт) 19:39

Подробнее об условиях, требованиях, ограничениях, допустимых и недопустимых аспектах.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: как редактировать ресурсы?

Сообщение arthur2 » 09.03.2012 (Пт) 20:00

Программа минимум - проверить, прошит ли в ресурсе манифест, и если нет, то прошить. Если уже прошит, иметь возможность удалить или отредактировать.

В идеале - не плохо было бы вставлять и удалять любые ресурсы, включая диалоги, меню и прочее, чего не может встроенный редактор. Собственно, можно генерировать ресурс по скрипту rc, но так получается только сделать новый файл, а не редактировать существующий.
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 10.03.2012 (Сб) 21:32

А что мешает редактировать существующий res-файл?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: как редактировать ресурсы?

Сообщение arthur2 » 10.03.2012 (Сб) 21:55

отсутствие знания того, как это сделать.
Можно, конечно, просто разобрать бинарный формат этого файла и делать всё руками. Но мне кажется, должен же быть какой-то более стандартный способ.
Артур
 
   

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: как редактировать ресурсы?

Сообщение ger_kar » 11.03.2012 (Вс) 7:55

Хакер писал(а):А что мешает редактировать существующий res-файл?
Интересненький вопрос кстати. Но не зная на него ответа в свою очередь хочется спросить - WinApi функции для работы с ресурсами хорошо описаны во многих источниках и примеров на эту тему можно найти немало, но эти примеры для работы с PE файлами (*.exe и *.dll). Можно ли эти функции аналогичным образом применить для работы с файлами ресурсов? А может существуют специальные для этих целей?
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 11.03.2012 (Вс) 8:34

ger_kar писал(а):Можно ли эти функции аналогичным образом применить для работы с файлами ресурсов? А может существуют специальные для этих целей?

Нет. Нет.

Введение в формат.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: как редактировать ресурсы?

Сообщение arthur2 » 11.03.2012 (Вс) 9:35

Скажем, у ини-файлов очень простой формат, и тем не менее есть целая группа апи для чтения этих файлов. Те же ресурсы, но в экзешниках и библиотеках можно читать и изменять готовыми функциями, без необходимости разбираться в формате файлов. А чем, собственно, формат ресурса внутри экзешника и формат res-файла отличается? Может всё же можно как-то приспособить к нему стандартные функции? или всё же придется ручками? :(((
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 11.03.2012 (Вс) 9:41

arthur2 писал(а):Скажем, у ини-файлов очень простой формат, и тем не менее есть целая группа апи для чтения этих файлов.

У ini-файлов формат сложнее, чем у res-файлов. С точки зрения компьютера, конечно, а не 13-летней девочки, глядящей в блокнот.
И вообще API-функции пишутся под нужды. С ini-файлами работать нужно очень многим. С ресурсами в PE — возможно тоже.
А кому надо работать с res-файлами? Таких на два-три порядка меньше, чем тех, кому нужны ini-файлы.

arthur2 писал(а): А чем, собственно, формат ресурса внутри экзешника и формат res-файла отличается?

Во всём. Общего — ничего, кроме идеи.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как редактировать ресурсы?

Сообщение jangle » 11.03.2012 (Вс) 9:49

Для редактирования .RES файлов есть API функции: UpdateResource, BeginUpdateResource, EndUpdateResource

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 11.03.2012 (Вс) 10:00

jangle, не занимайся дезинформацией!
Эти функции не работают с .res-файлами.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: как редактировать ресурсы?

Сообщение arthur2 » 11.03.2012 (Вс) 10:16

Понятно. Спасибо :) Придется ковыряться в формате.
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 11.03.2012 (Вс) 10:17

Не ковыряться, а смаковать, радоваться от получения знаний об устройстве.
Тогда работа пойдёт с другим настроением :wink: .
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как редактировать ресурсы?

Сообщение jangle » 11.03.2012 (Вс) 10:51

Хакер писал(а):jangle, не занимайся дезинформацией!
Эти функции не работают с .res-файлами.


Работают с экзешниками, к которому эти .res файлы были прилинкованы.
Разницы для ТС никакой.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 11.03.2012 (Вс) 10:58

Разница есть, если он пишет Add-in, который заменит встроенный Resource-Editor-Add-in.

Ну и да: править готовый выходной PE-файл всегда в миллион раз хуже, чем править входные данные, на основе которых линкер создал PE-файл.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: как редактировать ресурсы?

Сообщение jangle » 11.03.2012 (Вс) 11:26

Не соглашусь что "в миллион раз хуже". Разницы никакой. API UpdateResource специально были созданы чтобы менять ресурсы у бинарных файлов. Я эти функции использую уже давно, никогда проблем не было. За исключением Windows 9x/ME где эти функции реализованы как заглушки. Но там можно таскать с приложением Unicows.dll и брать от туда юникодовые версии UpdateResourceW

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: как редактировать ресурсы?

Сообщение Хакер » 11.03.2012 (Вс) 11:29

jangle писал(а):Не соглашусь что "в миллион раз хуже". Разницы никакой.

Разница есть. Править PE-файл всегда плохо. Можно это делать, когда нет других вариантов, но когда другие варианты есть — надо править то, на основе чего генерируется PE-файл.

И кроме того, если пишется замена... в общем, читай выше.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 3

    TopList  
cron