Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение иконки любого приложения [D6, Win2k]


6h ©   (2004-12-01 16:16:00) 

Меня интересует вопрос о том, как изменить ресурс любого файла. На примере изменения отображаемой иконки exe файла любого приложения программным образом.


Anton_K   (2004-12-01 17:33:00) [1]

>[1]

Не надо пугать людей. В NT-системах есть специальные функции для изменения ресурсов: BeginUpdateResource,UpdateResource, EndUpdateResource.


Sirakuz   (2004-12-01 17:29:00) [2]

Открой файл в FileStream, вооружись докой по PE формату, конкретно ты должен научиться правильно преобразовывать RVA в физикал оффсет; Ты должен прочитать из секции ресурсов ресурсы типа icons(каждая запись может иметь различную длину)(создай массив, будет удобнее). Винда в качестве значка к программе отображает иконку (тип ресурса icon), с индексом находящимся в первом ресурсе типа Icon Group. запись Icon Group кратна $14 байтам. Последние 2 байта каждого блока по $14 байт первого ресурса Icon Group определяют номер иконки(индекс в массиве иконок), которая винда может отобразить в качестве иконки к программе. Чаще всего этот первый икон гроуп ссылается на одну иконку, но если на большее количество, то винда выбирает ту иконку, параметры которой (разрешение, глубина цвета), больше подходят к текущим параметрам экрана.


Наверх

Титульная страница Поиск, карта сайта Написать письмо