Как в делфи поменять иконку exe файла

Обновлено: 04.07.2024

Embarcadero только что выпустила целую кучу аккуратных иконок, которые я хотел бы использовать, чтобы мои приложения Delphi 7 и 2009 выглядели более причудливо. Есть ли настройка (или взлом) в этих IDEs, которая позволяет мне изменить значок exe по умолчанию?

2 ответа

У меня есть много исполняемых файлов, которые я скомпилировал (давным-давно), для многих из которых у меня сейчас нет исходного кода. Но когда я их скомпилировал, я не поставил для них никаких значков, поэтому все они выглядят как один и тот же тусклый, лысый значок по умолчанию. Итак, мои вопросы.

Возможный Дубликат : Получить значок файла, используемый Shell В моей программе я читаю каталог файлов и отображаю их как ToolStripMenuItem Обычно я бы использовал: item.Image = Image.FromFile(icon.ico); Но как бы я получил значок по умолчанию, который использует данный exe: item.Image =.

Вы всегда можете воспользоваться редактором ресурсов, чтобы найти значок в Delphi ide или в бпл и изменить его на что-то другое. Это будет постоянным для всех новых проектов.

Помимо того, что Андрей ответил именно на то, что вы спросили, я предполагаю, что вы хотите добавить в свой исполняемый файл больше значков, чем просто тот, который вы можете установить в опции проекта? Это можно сделать, добавив в проект файл *.rc. Следующая строка должна войти в ваш проект:

rc - файл представляет собой обычный текстовый файл, который Delphi компилируется в res. В rc-файл добавьте 1 значок на строку, как это:

Первая часть - это название иконы. Я выбрал имена, которые идут после Mainicon в алфавитном порядке, причем Mainicon-это значок, который вы определяете в параметрах проекта. Я не уверен (может быть, кто-то может подтвердить?), Но я думаю, что Delphi компилирует первый значок в качестве значка приложения, поэтому я убедился, что мои дополнительные значки сортируются позже. Если вы хотите изменить значок приложения во время выполнения, вы можете использовать процедуры 2 Application.Icon.LoadFromResource. Надеюсь, это поможет

Похожие вопросы:

Я использую sapui5 для создания таблицы. Мне было интересно, могу ли я изменить значок по умолчанию сортировки по возрастанию и сортировки по убыванию на мои собственные значки? Дополнительный.

Я хочу изменить значок по умолчанию .exe на какой-нибудь другой значок в C/C++. кто-нибудь знает, как это сделать?

У меня есть много исполняемых файлов, которые я скомпилировал (давным-давно), для многих из которых у меня сейчас нет исходного кода. Но когда я их скомпилировал, я не поставил для них никаких.

Возможный Дубликат : Получить значок файла, используемый Shell В моей программе я читаю каталог файлов и отображаю их как ToolStripMenuItem Обычно я бы использовал: item.Image =.

Я пытаюсь настроить значок, который отображается в Windows Explorer и в ярлыках рабочего стола для моего приложения Delphi. В Delphi 7 IDE я загрузил нужный значок на вкладке приложение диалогового.

Я пытаюсь рискнуть значком файла exe, созданного в собственном пакете упаковки javafx, но он все еще содержит значок по умолчанию. Пожалуйста, предложите.

Мне было интересно, есть ли способ изменить значок по умолчанию, который VS2012 делает, когда я компилирую свое приложение. Просто для тех, кому интересно, я пытаюсь изменить значок программы .exe.

Я хочу добавить значок в свое приложение delphi. Значок был сгенерирован из изображения через ICOFX, включая значки 128x128 и 256x256 (Vista). Я несколько раз пытался добавить иконку: Прежде всего.

У меня возникла эта странная проблема впервые за мой 15-летний опыт использования Delphi. Это значок, который я установил в настройках проекта (XE4): И это результирующая иконка приложения после.

Открываем Delphi. Создаем новый или открываем имеющийся проект, выбираем форму (Form) и в Инспекторе объектов (Object Inspector) находим строчку Icon. Жмем на кнопку с тремя точками и выбираем нужную иконку.

Как изменить значок программы в делфи?

Чтобы поменять значок exe-файла, т. е. проекта, надо это сделать в Project/Options/Application/Icon в главном меню.

Как изменить иконку у программы?

Как изменить иконку ярлыка в Windows

  1. Щелкните правой кнопкой мыши на иконку, которую хотите изменить. В выпадающем меню выберите «Свойства» (Properties).
  2. В меню «Свойства» выберите вкладку «Настроить» (Customize).
  3. В последнем разделе «Значки папок» нажмите кнопку «Сменить значок» (Change Icon).

Как изменить значок для файла?

Кликаете по файлу правой кнопкой мыши, заходите в раздел «Свойства», но здесь переходите на вкладку «Ярлык», нажимаете «Сменить значок». Следуя этим не сложным правилам, Вы можете постепенно сменить все значки папок и файлов на те, которые вам больше нравятся.

Как изменить иконку приложения на Xiaomi?

Открыть профиль, нажав на пиктограмму смайлика или силуэта человека. Нажать «Значки» и выбрать набор иконок от скачанной темы. Коснуться кнопки «Применить».

Как изменить значок файла PDF?

Чтобы изменить значок приложения, просто щелкните правой кнопкой мыши значок и выберите «Свойства». Перейдите на вкладку «Ярлык»> нажмите кнопку «Изменить значок»> «Теперь», выберите один из других доступных значков или нажмите «Обзор», чтобы найти нужный значок.

Как изменить значок музыкального файла?

Как изменить значок файла в Windows 10?

Как изменить иконку папки Windows 10

  1. Нажмите правой кнопкой мыши по любой папке и выберите пункт «Свойства».
  2. Перейдите на вкладку «Настройка» и нажмите «Сменить значок».
  3. Как и в предыдущем способе, укажите желаемую иконку из библиотек Windows, exe-файлов программ или собственного .ico файла.

Как поменять иконки на MIUI 12?

А не так давно в “Темах” стало можно изменить иконки. Благодаря этому индивидуализация достигла нового, невиданного ранее уровня. Для того, чтобы воспользоваться данной возможностью, нужно открыть в “Темах” вкладку “Значков”, выбрать и загрузить любой из понравившихся паков с иконками, после чего установить его.

Как поменять иконку приложения на айфоне?

Как поменять иконку приложения на iPhone

Как изменить иконку whatsapp?

Чтобы изменить ярлык: нажмите на ярлык > Изменить. Чтобы изменить цвет ярлыка: нажмите на ярлык > Изменить > нажмите на иконку палитры > Выбрать цвет > нажмите Сохранить. Чтобы удалить ярлык: нажмите на ярлык > Изменить > Удалить ярлык > Удалить.

Читая форумы по программированию, иногда натыкаешься на вопрос типа: "У меня есть откомпилированная программа на Delphi. Как мне получить её исходный код?". Обычно такой вопрос возникает, когда программист потерял файлы проекта и у него остался только .exe. Как правило полностью восстановить исходный код на языке высокого уровня невозможно. Значит ли это, что другие тоже не смогут восстановить исходный код Вашей программы ? Хм . и да и нет .

Для начала сразу скажу, что восстановить исходный код в точности каким он был однозначно невозможно, так как не существует в мире такого декомпилятора, который бы смог сотворить такое.

После компиляции и линковки проекта и получения исполняемого файла все имена, используемые в программе конвертируются в адреса. Потеря имён означет, что декомпилятор создаст уникальное имя для каждой константы, переменной, функции и процедуры. Даже если мы и достигнем какого-то успеха в декомпиляции исполняемого файла, то получим уже другой синтаксис программы. Данная проблема связана с тем, что при компиляции практически идентичные куски кода могут быть скомпилированы в разные последовательности машинных команд (ASM), которые присутствуют в .exe файле.
Естевственно декомпилятор не обладает такой степенью интеллектуальности, чтобы решить - какова же была последовательность инструкций языка высокого уровня в исходном проекте.

2 Reply by PunBB 2015.07.09 10:20

Когда же применяется декомпиляция ? Для этого существует довольно много причин. Вот некторые из них:
- Восстановление исходного кода;
- Перенос приложения на другую платформу;
- Определение наличия вирусов в коде программы или вредоносного кода;
- Исправление ошибок в программе, в случае, если создатель приложения не собирается этого делать

Легально ли всё это ? Хотя декомпиляция и не является взломом, но утвердительно ответить на этот вопрос довольно сложно. Обычно программы защищены законом об авторских правах, однако в большинстве стран на декомпиляцию делается исключение. В часности, когда необходимо изменить интерфейс программы для конкретной страны, а сервис приложения не позволяет этого сделать.

На данный момент Borland не предоставляет никаких программных продуктов, способных декомпилировать исполняемые файлы (.exe) либо откомпилированные Delphi-модули (.dcu) в исходный код (.pas).

Если же Вы всё-таки решились попробовать декомпилировать исполняемый файл, то необходимо знать следующие вещи. Исходные коды на Delphi обычно хранятся в файлах двух типов: сам исходник в ASCII кодировке (.pas, .dpr) и файлы ресурсов (.res, .rc, .dfm, .dcr). Dfm файлы хранят в себе свойства объектов, содержащихся в форме. При создании конечного .exe, Delphi копирует в него информацию из .dfm файлов. Каждый раз, когда мы изменяем координаты формы, описания кнопок или связанные с ними события, то Delphi записывает эти изменения в .dfm (за исключением кода процедур. Он сохраняется в файлах pas/dcu ). И наконец, чтобы получить при декомпиляции файл .dfm, нужно знать - какие типы ресурсов хранятся внутри Win32 исполняемого модуля.

3 Reply by PunBB 2015.07.09 11:35

Все программы, скомпилированные в Delphi имеют следующие секции: CODE, DATA, BSS, .idata, tls, .rdata, .rsrc. Самые важные для декомпиляции секции CODE и .rsrc. В статье "Adding functionality to a Delphi program" приведены некоторые интересные факты о исполняемых форматах Delphi, а так же информация о классах и DFM ресурсах. В этой статье есть один интересный момент под заголовком: "Как добавить свой обработчик события в уже откомпилированный файл, например, чтобы изменять тект на кнопке".

Среди многих типов ресурсов, которые сохранены в .exe файле, интерес представляет RT_RCDATA, который хранит информацию, которая были в DFM файле перед трансляцией. Чтобы извлеч DFM данные из .exe файла, мы можем вызываться API функцией EnumResourceNames.

Исскуство декомпилирования традиционно было уделом мастеров, знакомых с ассемблером и отладчиками. Некоторые Delphi декомпиляторы создают впечатление, что любой, даже с ограниченными техническими знаниями, может изменить по своему желанию большинство исполняемых файлов Delphi.

4 Reply by PunBB 2015.07.09 11:46

Если Вы заинтересовались декомпилованием, то предлагаю Вам несколько Delphi декомпиляторов:

DeDe
DeDe довольно шустрая программка, позволяющая анализировать экзешники, скомпилированные в Delphi. После декомпиляции DeDe даёт Вам следующее:
- Все dfm файлы. Вы сможете открывать их и редактировать в Delphi
- Все объявленные методы с хорошо комментированным кодом на ассемблере с ссылками на строки, импортированных функций, методов и компонент в юните, блоки Try-Except и Try-Finally.
- Большое количество дополнительной информации.
- Вы можете создать папку Delphi проекта со всеми файлами dfm, pas, dpr. Не забудьте, что pas файлы содержат ассемблерный код.

Revendepro
Revendepro находит почти все структуры (классы, типы, процедуры, и т.д.) в программе, и генерирует их паскальное представление, процедуры естевственно будут представлены на языке ассемблера. К сожалению, полученный ассемблерный код не может быть заново откомпилирован. Так же доступен исходник этого декомпилятора. К сожалению, этот декомпилятор не совсем рабочий - генерирует ошибку при декомпиляции.

MRIP
Позволяет извлекать из Delphi приложения любые ресурсы: курсоры, иконки, dfm файлы, pas файлы и т.д. Но главная его особенность - это способность извлекать файлы, хранящиеся в других файлах. Поддерживается более 100 форматов файлов. MRip работает под DOS.

5 Reply by PunBB 2015.07.10 02:39

Нашел уникальное решение проблемы распаковки файлов exe, но платное. Хотя есть тестовый период.

Тюнер ресурсов позволяет просматривать, извлекать, заменять, изменять и удалять внедренные ресурсы исполняемых файлов: иконы, строки, изображения, звуки, диалоги, меню - все, что составляют визуальную часть ваших программ Windows.

Тюнер ресурсов о единственном инструменте вы, вероятно, доверять изменять ресурсы в PE исполняемого файла. Откройте для себя уникальные свойства этого редактора ресурсов , в том числе, как открыть проблемные исполняемые файлы и редактировать скрытые данные, которые другие редакторы просто не может видеть, широкий спектр поддерживаемых типов ресурсов, для распаковки UPX, и многое другое. Вы узнаете, стандартную программу промышленности для перевода и настройки пользовательского интерфейса.

Тюнер ресурсов с огромным количеством функций, которые делают его важным инструментом для тех, кто настройки еще программы. Удачи персонализации любое приложение на свой неповторимый вкус. С помощью мощных Resource Tuner, вам больше не нужно страдать с уродливыми икон и картин по умолчанию. Использование очень просто, просто запустите программу и выберите EXE или DLL файл, чтобы прочитать данные из.

После того, как вы попробуете это, мы думаем, вам будет трудно вернуться на другой ресурс хакерских утилит.

Ресурсы - важная часть приложения Windows. Однако, не все разработчики удосуживаются создать правильный набор ресурсов, необходимый для корректного поведения приложения, в итоге мы видим приложения, которые просят, чтобы пользователь самостоятельно запустил их с правами администратора (под Windows Vista/2008/7) или иконки которых отображаются зернисто или как непонятный набор пикселей, а некоторые не имеют описания и номера версии.

Ресурсы, сами по себе - записи только для чтения внутри вашего .exe или .dll , которые просматривает Windows в поисках значков, описаний и прочих нужных ей вещей.

Как же сделать из стандартного нечто :

Что-то красивое, вот такое:

Для примеров я буду использовать Rad Studio Delphi 2010 под Windows 7 x64.

Rad Studio уже во время компиляции добавляет в ресурсы компилируемого файла необходимые (или не очень) ей записи. Среди них какие-то строки с текстами об ошибках, информация о компиляторе, данные о ваших формах, стандартные bitmap' ы и еще бог знает что. Пока нас это не будет интересовать, нам интересно то, что Rad Studio не удосуживается добавить.

What is resource?

Прежде всего ресурсы - это записи внутри .exe или .dll файла, хранящие в себе некоторую информацию, например, изображение курсора или строковое значение для локализации. Ресурсы в Windows могут быть как стандартного (предопределенного) типа (BITMAP, CURSOR, FONT и т.д.), так и заданного пользователем типа (User-defined). Если используется один из стандартных типов, то доступ к этому ресурсу осуществляется посредством целочисленного значения (константы), определяющего этот ресурс (BITMAP - 2, CURSOR - 1, FONT - 8, etc). В случае User-defined тип задается любым строковым значением, например "JPEG" или "SOUND". Каждый из ресурсов, кроме RCDATA и User-defined, записываются в исполнямый файл в специальном формате, созданным именно для этого типа ресурса. Например ресурс типа ICON - не копия файла .ico, вставленной в конец .exe файла.

Какие вообще бывают предопределеные типы :

  • CURSOR = 1
  • BITMAP = 2
  • ICON = 3
  • MENU = 4
  • DIALOG = 5
  • STRING = 6
  • FONTDIR = 7
  • FONT = 8
  • ACCELERATOR = 9
  • RCDATA = 10
  • MESSAGETABLE = 11
  • GROUP_CURSOR = 12
  • GROUP_ICON = 14
  • VERSION = 16
  • DLGINCLUDE = 17
  • PLUGPLAY = 19
  • VXD = 20
  • ANICURSOR = 21
  • ANIICON = 22
  • HTML = 23
  • MANIFEST = 24

Я также привожу числовые значения, чтобы в них было проще ориентироваться позднее. Подробнее на MSDN.

Также ресурсы можут быть отнесены к конкретному языку (или сделать мультиязычными), например, строки локализации или диалоги. Для этого существует специальное поле при создании ресурса.

Creating icon resources

Вот стандартный диалог Delphi для работы с иконкой проекта и рядышком информации о версии.

Про эти окна скажу только одно - для вас их больше не существует. Мы не будем ими пользоваться, их функционыл недостаточен для создания полноценных ресурсов иконок и описания проекта.

Прежде всего наприсуйте иконку в высоком разрешении и создайте из этого файла несколько .ico файлов разных форматов :

Можно также поиграться с цветностью картинки для совместимости со старыми версиями Windows. В итоге должен получиться набор файлов вида icon128.ico. icon16.ico.

Теперь нужно создать .rc файл, который будет отвечать для сборку ресурса. Это просто текстовый файл ( ANSI encoded), который похож на обычный .cmd скрипт. Содержимое файла должно быть вот таким :

MAINICON ICON "icon128.ico"
2 ICON "icon48.ico"
3 ICON "icon32.ico"
4 ICON "icon24.ico"
5 ICON "icon16.ico"

Здесь мы отмечаем самую большую и четкую иконку 128 x128 как основную (MAINICON = 1) и указываем остальные как дополнительные. Windows сама найдет нужную ей иконку из этого списка.

Чтобы добавить эти иконки в проект их нужно скомпилировать утилитой brcc32 из составть Rad Studio. Синтаксис таков :

brcc32 -l0409 mainicon.rc

Компилятор ресурсов создаст файл mainicon.res, который является ресурсов с языком $ 0409 (EnUS). Рекомендую сразу создать .cmd скрипт, нам потребуется добавить еще пару ресурсов в исполняемый файл.

Adding resource to an application

Ресурсы в Delphi подключаются дерективой

Сразу после создания проекта Delphi создает для нам ресурс projectname.res, который подключается автосфомированной редетивой < $ R *.res>в файле проекта. Чтобы этого больше не происходило перейдем в файл проекта :

и изменим код так, чтобы он подключал не все подрят, а только то, что нам требуется :

И пересоберем проект целеком, нажав Shift+F9. В итоге получится симпотчная иконка, и все наши .ico включатся в итоговый проект ::

Скриншот ресурсов взят из Resource Hacker, им можно контролировать состояние ваших проектов. Как видите - иконки вставились и им назначился язык 1033 ( EnUS).

Application Info

Теперь нужно добавить описание исполняемого файла, которое отображается в диалоге Properties, на вкладке Details.

Создадим .rc файл, как и выше, но с текстом :

1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BLOCK "StringFileInfo"
BLOCK "040904E4"
VALUE "CompanyName", "DelphiCorp\0 00"
VALUE "FileDescription", "Reso urce Demo Application\000"
VALUE "FileVersion", "1.0.0.0\000"
VALUE "InternalName", "Resource De mo Application\000"
VALUE "LegalCopyright", "SV Fo ster, 2011\000"
VALUE "LegalTrademarks", "DelphiCo rp\000"
VALUE "OriginalFilename", "RDA.e xe\000"
VALUE "ProductName", "DelphiCorp\0 00"
VALUE "ProductVersion", "1.0.0.0\0 00"
VALUE "Comments", "\000"
>
>

BLOCK "VarFileInfo"
VALUE "Translation", 0x0409 0x04E 4
>
>

Итик, очевидно по тексту файла, это файл ресурсов первой версии, содержит VersionInfo , для приложения версии 1.0.0.0. FileVersion - версия конкретного .exe файла.

FileOS - для какой Windows предназначен этот файл. Бывают :

  • VOS_UNKNOWN
  • VOS_DOS
  • VOS_NT
  • VOS__WINDOWS16
  • VOS__WINDOWS32
  • VOS_DOS_WINDOWS16
  • VOS_DOS_WINDOWS32
  • VOS_NT_WINDOWS32

FileType описывает тип файла (приложение, библиотека, драйвер. ). Возможные значения :

  • VFT_UNKNOWN
  • VFT_APP
  • VFT_DLL
  • VFT_DRV
  • VFT_FONT
  • VFT_VXD
  • VFT_STATIC_LIB

FileSutType описывает тип драйвера, для приложений ставится VFT2_UNKNOWN

Блок StringFileInfo - это то, что показывается в Properties. Здесь можно указать компанию производителя, версию и все остальные параметры приложения.

Обратите внимание на формировании языкового признака. Значение 040904E4 расшифровывается как langID + charsetID. Здесь $ 0409 ( EnUS) + $04E4 (Multilanguage).

Аналогично для блока VarFileInfo.

Добавьте в ваш .cmd строку для компиляции ресурса

brcc32 -l0409 VersionInfo.rc

а в Delphi подключите ресурс

Теперь файл обрел полноценные свойства!

Manifest

Manifest - сравнительно новое изобретение, появилось в Windows XP. Описывает, какую тему оформления следует использовать приложению, требуется ли ему административные привелегии, версию и описание.

Чтобы добавить создайте файл manifest.xml в кодировке UTF8 w/ BOM.

Ничего менять в нем, кроме имени и версии приложения, обычно не требуется. Единственное место, котрое может интересовать - requestedExecutionLevel / level. Оно поддерживает несколько параметров :

  • asInvoker - приложение будет запущено с привелегиями пользователя
  • highestAvailable - приложение будет запущено с максимально доступными привелегиями
  • requireAdministrator- приложение будет запущено с максимально привелегиями администратора, появится окно UAC для подтверждения

Как уже стало обычно, добавьте строку в .cmd:

brcc32 -l0409 Manifest.rc

а в Delphi подключите ресурс

За подробностями по параметрам манифеста следует обращаться в MSDN: Application Manifest

Result

Итак, в итоге мы собрали приложение, отвечающее всем требованиям эстетики и фэн-шуя :

Теперь это выглядет как полноценный коммерческий продукт. Не забывайте обновлять информацию здесь по мере необходимости.

главная программы resource tuner руководство

Немного теории

Resource Tuner отлично подходит для замены икон в любых исполняемых файлах - будь то икона в десктопном приложении или икона приложения на вашем мобильном телефоне, работающем под управлением Windows Mobile.

Но прежде чем приступить к замене иконы, следует вспомнить, что внутри исполняемых файлов обычно одна и та же икона представлена в нескольких вариантах.

Например, вот как выглядит иконная группа в нашем любимом Блокноте из Windows XP:

Поэтому при замене иконы (или курсора) на другую икону пожалуйста убедитесь, что заменяемое изображение имеет тот же размер и ту же глубину цвета. Например, если у иконы размер 16х16 и количество цветов 256, её нельзя заменить на 32-битную икону размером 32х32.

Если вы продолжаете получать ошибку о несовпадении икон, хотя на ваш взгляд они выглядят идентично, проверьте глубину цвета: 24-битные и 32-битные иконы выглядят практически одинаково, но у 24-битной иконы отсутствует альфа-канал.

Как заменить икону в .EXE файле при помощи Resource Tuner

1. Откройте EXE файл в Resource Tuner и раскройте папку Icon Entry.

2. Выберите икону или группу икон, которые вы хотите заменить, и нажмите кнопку 'Replace Resource with. ' как показано ниже.

4. Отметьте в списке 'New items' только те иконы, которые необходимо добавить, и выберите правило для добавления или замены.

5. Нажмите OK для подтверждения и закрытия окна редактора, затем выбирете в меню 'File' -> 'Save File' для сохранения произведённых изменений в файл.

Изменения в файле вступят в силу только после того, как вы сохраните файл на диск.

Замена икон из командной строки при помощи Resource Tuner Console

Если вам требуется регулярно заменять иконы или добавлять новые иконы в десятках файлов, эту операцию целесообразно производить с помощью программы для пакетной замены икон - Resource Tuner Console.

Resource Tuner работает на всех версиях Windows
от 2000 и XP до 8 и 10.

Минимальные системные требования:
Процессор Intel Pentium® или AMD K5 166 MHz
16 MB RAM

Читайте также: