![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение иконки любого приложения [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 определяют номер иконки(индекс в массиве иконок), которая винда может отобразить в качестве иконки к программе. Чаще всего этот первый икон гроуп ссылается на одну иконку, но если на большее количество, то винда выбирает ту иконку, параметры которой (разрешение, глубина цвета), больше подходят к текущим параметрам экрана.