Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Извлечение и сохранение значка 
:(
    Опции темы
tofreesky
Дата 14.6.2010, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Не актуально

Это сообщение отредактировал(а) tofreesky - 31.10.2010, 17:02
PM MAIL   Вверх
azesmcar
Дата 14.6.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(tofreesky @  14.6.2010,  19:43 Найти цитируемый пост)
А готовый код есть? А то долго и трудно разбиратся с ресурсами, даже не знаю с чего начать.

у меня нет.
Цитата(tofreesky @  14.6.2010,  19:43 Найти цитируемый пост)
Кроссплатформенный опенсорс UPX упаковывает PE32 файлы с сохранением иконки, под линуксом. 

а имеет ли смысл кроссплатформенность такой программы? Если человек создал EXE, хочет его упаковать, то наверняка у него найдеться windpws. Иначе надо изучать формат самого файла и писать вручную.
PM   Вверх
alexcustov
Дата 14.6.2010, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 11.6.2010
Где: Полацкае княства

Репутация: нет
Всего: нет



Цитата(tofreesky @  13.6.2010,  11:00 Найти цитируемый пост)
Знаю что можно Windows API это делать. Мне нужен кросплатформенный код. 


Под Linux нет "значков" в исполняемых файлах. В Mac не знаю.
PM MAIL   Вверх
tofreesky
Дата 14.6.2010, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Не актуально

Это сообщение отредактировал(а) tofreesky - 31.10.2010, 17:02
PM MAIL   Вверх
alexcustov
Дата 14.6.2010, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 11.6.2010
Где: Полацкае княства

Репутация: нет
Всего: нет



Цитата(tofreesky @  14.6.2010,  20:30 Найти цитируемый пост)
Повторяю, что мне нужно работать только с ресурсами PE файла.ELF формат мне не нужен.


Тогда под Linux я таких не знаю. Либо писать костыль через winelib (или писать на WIN32 API и пускать через wine), либо свой парсер. Формат PE описан.

Цитата(tofreesky @  14.6.2010,  20:30 Найти цитируемый пост)
У Mac тоже ведь исполняемые файлы - ELF как и в Linux


нет, не ELF


Это сообщение отредактировал(а) alexcustov - 14.6.2010, 20:48
PM MAIL   Вверх
tofreesky
Дата 14.6.2010, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



А какой тогда там формат? Там ведь unix ядро
PM MAIL   Вверх
djamshud
Дата 14.6.2010, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Цитата

PEF was developed by Apple Computer for use in its Mac OS operating system. It was optimised for RISC processors. In Mac OS X, the Mach-O  file format is the native executable  format. However, PEF is still supported on PowerPC-based Macintoshes and is used by some Carbon applications ported from earlier Mac OS versions.



--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Peter
Дата 17.6.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 28.7.2003
Где: Ставрополь

Репутация: -1
Всего: 1



А как насчет такого варианта - вшить в программу запуск утилиты ResThief (поищите в интернете)? Ну, а в линукс - соответственно запуск "wine ResThief.exe".

Добавлено через 45 секунд
Нет, не вариант. Она с командной строки не работает.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
jonie
Дата 18.6.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



а я за три запроса у гуглу нашел сырки и для никсов http://www.nongnu.org/icoutils/
В общем вы как-то неправильно используйте гугла...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
tofreesky
Дата 18.6.2010, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Не актуально

Это сообщение отредактировал(а) tofreesky - 31.10.2010, 17:02
PM MAIL   Вверх
xvr
Дата 18.6.2010, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(tofreesky @ 18.6.2010,  12:07)
Все еще актуален код, для работы с ресурсами PE файла, под Windows, 

Win32 API
Цитата

ну и если существует то и под linux
winelib
 smile 
PM MAIL   Вверх
Abyx
Дата 18.6.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



мде. тему бы перенести в раздел винды.
-----------------------


Есть спецификация формата PE. Это не секретный документ, и формат PE не является недокументированным форматом.
Чтобы выдрать иконку из файла, надо найти в заголовке смещение директории ресурсов, затем найти в директории ресурсов ресурс иконки. Все это простые операции с бинарными файлами.

Добавлено через 7 минут и 27 секунд
вообще я бы эту задачу решал на питоне, благо есть куча библиотек для работы с PE, типа этой
http://code.google.com/p/pefile/
PM MAIL   Вверх
tofreesky
Дата 19.6.2010, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



актуально
PM MAIL   Вверх
xvr
Дата 20.6.2010, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Сделал зеркало в WinAPI - там помогут скорее

PM MAIL   Вверх
Alexeis
Дата 20.6.2010, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



  Window иконка в ресурсах разбивается на части. Соответственно чтобы ее извлечь нужно извлечь n + 1 ресурс, где n число кадров. Ресурс описатель называется ICONDIRENTRY в нем храниться число кадров и их индексы в секции ICON. Все кадры всех иконок заталкиваются в одну секцию, поэтому важно извлечь ICONDIRENTRY. Вообще, официальная документация по этому поводу храниться тут http://msdn.microsoft.com/en-us/library/ms997538.aspx . Ее можно дополнить следующими фактами. С вистой формат был расширен до размеров 256х256. Поскольку для хранения размера предусмотрено поле размером в байт, то в иконке этот размер указывается как 0х0. Кроме того кадры могут быть в формате png. Это следует проверять. Формат png просто raw данные так как если бы файл png целиком поместили в иконку или ресурс. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.