Приделать иконку к exe файлу без рессурсов.

Тема в разделе "WASM.BEGINNERS", создана пользователем maestro-ant, 3 ноя 2006.

  1. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Каким способом можно это реализовать.
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    никаким
     
  3. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Ну да...

    А если думать не головой а ж...?

    BASE64 encoding.

    В EXE есть секции, куда можно записывать, что угодно!
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    opennetworks
    можете через base64 сделать так, чтобы в explorer'e на exeшнике отображалась ваша иконка (та, что в base64 хранится)?

    если да, то приаттачьте такой ехе Ж)
     
  5. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Это нужно сделать программно. В файле вообще нет ресурсов?
     
  6. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    Иконка - это элемент ресурсов файла. Нет ресурсов - нет иконки.
     
  7. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    1. Добавить секцию в файл (или расширить существующую)
    2. Указать в заголовках, что в данной секции хранятся ресурсы
    3. добавить иконку в ресурсы файла.

    Как вариант, можно писать досовские программы и использовать pif-файлы. Тогда в файле ресурсов не будет, а иконка будет отображаться :)
     
  8. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    ..хорошо если файл будет иметь ресурсы и иконку, как можно ее изменить? Веть пропатчить файл не выйдет, останется хвост если новая иконка будет другого размера?
     
  9. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Не совсем понятна задача - если прога запущена и нужно отобразить иконку в верхнем левом углу или в диалоге, то можно либо одну из системных, либо юзать обычное GDI рисование в нужном месте. А если речь идёт об отображении иконки файла в Win папке \ на рабочем столе, то иконка должна быть либо в самом exe файле, либо сопоставлена через pif или link к нему (в последнем случае иконка будет только на ярлыке ;) Ещё можно сопоставить одну выбранную иконку всем exe файлам, не имеющим ресурсов ;), и как то попадалась прога (не помню как назвалась), позволяющая сопоставлять иконки отдельным папкам и файлам ;), но ес-но при переносе файла на другой комп такая иконка не сохраняется.
     
  10. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    Есть апишки для работы с ресурсами, вроде. а так, если размер не совпадает - патчить заголовки, структуры
     
  11. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Иконки имеют стандартные размеры: 16х16, 32х32, с количествами цветов 16, 256 и размер иконки зависит от её формата а не от картинки ;) обычно в файл пихают все комбинации, а винда сама выбирает когда какую из них лучше отобразить :) В сети есть куча приблуд позволяющих редактировать ресурсы непосредственно в exe файле, и даже генерировать файл патча по результатам этого редактирования :)))
     
  12. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    благодарю
     
  13. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Без проблем. Ща напишу. Этот механизм WinRar использует!
     
  14. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Блин, те надо, чтоб иконка MAINICON была? - без ресурса никак. Просто у RARA кое-что подсмотрел.

    Атак вообще засунуть какой-нить значок внутрь EXE, а потом извлечь - можно! и даже на форме показать.

    АХТУНГ номер три!

    Com+ + DefaultIcon в CLSID + Прописка в шелл + Твой_exe.exe.{GID} = Твой_exe.exe со значком из DefaultIcon без ресурса. Тока щас создал. Хочу выложить - не получается, программа 5 мегабайт у меня диалап сервант на 4 этаже упал VDSL FAILED.
     
  15. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Файл ехе, есть уже иконка. Как ее сменить что б не поменялся размер ехе?
     
  16. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Ну хотя бы Restorator http://www.bome.com/Restorator/index.html, а вообще таких тузл в сети пруд пруди ;)
     
  17. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Y_Mur ну ты приколист... прочитай пятый пост
     
  18. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Ну ты тоже приколист, бери доки по PE формату и вперёд.
    Это ты кого спрашиваешь? В каком файле? Можно ли к нему прикручивать свои ресурсы, или надо именно без ресурсов сделать?
     
  19. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Дык ты толком объясни какую задачу решаешь ;) - в чужом экзешнике заменить иконку, чтобы никто не догадался, тогда Restorator самое оно ;)
    А если в своей проге, то что мешает включить в него все нужные иконки и при запуске программы отображать ту, что нужно?
    Или хочешь чтобы винда в папке другую иконку показывала? - тогда меняй порядок следования иконок в ресурсах. Кстати если иконка 16х16 и 32х32 имеют не разную версию одной картинки, а разное изображение то в режиме "мелкие значки" и "крупные значки" будут разные изображения на одном и том же *.exe ;)))
    А какую из иконок вывести на ярлык на рабочем столе - выбираешь в свойствах ярлыка - хошь из своего файла, хошь из любого чужого :)))
     
  20. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Если не правильно вырзился или не понятно задал вопрос, сори!

    Пишу клей, вернее написал, осталось сделать возможность добавлять иконку к стабу через билдер. Тоесть, посоветуйте каким способом это лучше сделать. Мне извесны пока два варианта:
    1. Добавить секцию с ресурсами и туда пихнуть иконку
    2. Или создать стаб уже с секциеей ресурсов и туда уже писать иконку.
    Если есть какие-то советы, сорци, линки на статьи... буду рад.