|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.03.2017, 00:05 | #1 |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
Извлечение иконки из .exe (какой индекс всегда правильный?)
Здравствуйте!
Уже 2 дня не могу найти решение проблемы. Вопросы никогда по программированию не задавал, хотя и занимаюсь программированием (для себя) уже много лет. Но уперся в тупик. Нужно извлечь и сохранить ПРАВИЛЬНУЮ иконку из exe файла. Если у кого есть решение, то дальше можно не читать, просто поделитесь. Но здесь есть проблема. При извлечении и сохранении иконки, извлекается ее кривая ужатая версия. Возможная причина - Index = 0 не всегда подходит для всех exe. Но как тогда угадать номер индекса. А ведь при ручном создании ярлыка в Windows, система отображает на ярлыке правильную иконку. Откуда она знает правильный индекс? Вот неудачные методы, которые я использовал для изъятия: 1: Код:
Код:
Код:
Image1.Picture.Assign(icn); или Image1.Picture.Icon := icn.Handle; иконка на форме в Image1 отображается вполне себе нормально. Но если попытаться ее сохранить через Image1.Picture.SaveToFile или через Image1.Picture.Icon.SaveToFile, то иконка сохраняется ужатая и не та, что на экране. Как же так??? Что за квантовая неопределенность такая? Последний раз редактировалось Sabouter2017; 15.03.2017 в 00:12. |
15.03.2017, 04:54 | #2 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
Последний раз редактировалось Filka; 15.03.2017 в 04:57. |
16.03.2017, 02:56 | #3 | |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
Цитата:
В kicon получается сохранять иконку. Ищу в чем секрет. Как мне кажется, во внутренней опции OptimalIcon, которая проверяет на размер сначала... буду пробовать. |
|
16.03.2017, 03:01 | #4 |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
А может быть даже секрет в двойной конвертации иконки:
Код:
|
16.03.2017, 03:22 | #5 |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
И все-таки нет. Думаю, все дело в загрузке иконки. Видимо надо загружать exe через LoadLibraryEx, затем делать LoadResource через FindResource (искать иконку). Параметры для них изучаю сейчас.
|
16.03.2017, 05:15 | #6 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
|
16.03.2017, 08:02 | #7 | |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
Цитата:
Код только уж больно большой. Попробую урезать для себя. P.S. Вот в этом месте что-то не так делаю: Не подскажете, что именно нужно делать с LockIcon ? CreateIconFromResourceEx же ? Код:
Последний раз редактировалось Sabouter2017; 16.03.2017 в 08:39. |
|
16.03.2017, 14:36 | #8 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
https://msdn.microsoft.com/ru-ru/lib...Icon_Resources
http://embarcadero.newsgroups.archiv...904011296.html Чем модуль DBIconChanger.pas из примера не нравится? |
16.03.2017, 15:15 | #9 | |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
Цитата:
А вот последний исходник с embarcardo помоему идеальный. Еще пока не проверял. Но код написан красиво и лаконично. P.S. Здесь есть кнопка "Спасибо" ? Последний раз редактировалось Sabouter2017; 16.03.2017 в 15:26. |
|
16.03.2017, 15:26 | #10 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
Я просто по приведённому куску кода подумал, что идёт изобретение велосипеда
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Большие иконки иконки exe файла | Сидоров | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 02.10.2014 17:41 |
Извлечение иконки из *.exe и вставка в TImage - убрать фон | spirit-ua | Общие вопросы Delphi | 2 | 20.09.2013 10:25 |
Извлечение иконки файла и ее подгрузка в Image | artemavd | Общие вопросы Delphi | 1 | 13.10.2012 22:28 |
Код не всегда выдает правильный результат | Maxx | Microsoft Office Excel | 2 | 18.02.2010 15:59 |
Извлечение иконки из dll | JSM | Общие вопросы Delphi | 2 | 29.06.2007 21:32 |