![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
![]()
Здравствуйте!
Уже 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. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
![]() Последний раз редактировалось Filka; 15.03.2017 в 04:57. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
![]() Цитата:
В kicon получается сохранять иконку. Ищу в чем секрет. Как мне кажется, во внутренней опции OptimalIcon, которая проверяет на размер сначала... буду пробовать. |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
![]()
А может быть даже секрет в двойной конвертации иконки:
Код:
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
![]()
И все-таки нет. Думаю, все дело в загрузке иконки. Видимо надо загружать exe через LoadLibraryEx, затем делать LoadResource через FindResource (искать иконку). Параметры для них изучаю сейчас.
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
![]() |
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
![]() Цитата:
Код только уж больно большой. Попробую урезать для себя. P.S. Вот в этом месте что-то не так делаю: Не подскажете, что именно нужно делать с LockIcon ? CreateIconFromResourceEx же ? Код:
Последний раз редактировалось Sabouter2017; 16.03.2017 в 08:39. |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 29.10.2015
Сообщений: 273
|
![]()
https://msdn.microsoft.com/ru-ru/lib...Icon_Resources
http://embarcadero.newsgroups.archiv...904011296.html Чем модуль DBIconChanger.pas из примера не нравится? |
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 10.02.2017
Сообщений: 12
|
![]() Цитата:
А вот последний исходник с embarcardo помоему идеальный. Еще пока не проверял. Но код написан красиво и лаконично. P.S. Здесь есть кнопка "Спасибо" ? Последний раз редактировалось Sabouter2017; 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 |