Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизЗапись иконок в файл Найти похожие ветки
← →
Lexius (2004-05-01 14:59) [0]Необходимо создать файл, в котором должно содержаться, какое-то кол-во иконок. Эти иконки далее должны выбираться при смене ее самой у ярлыка. Наподобии как DLL или EXE файлы с множеством иконок в них.
← →
DVM © (2004-05-01 17:39) [1]
> Наподобии как DLL или EXE файлы с множеством иконок в них.
Ну так и делай dll. В ресурс пихаешь иконки, ресурс сам пихаешь в dll. Расширение dll можно и поменять.
← →
Ormada © (2004-05-01 19:43) [2]юзай TFileStream заливай через поток в файл и фсё... могу кинуть пример если чё...
← →
Lexius (2004-05-02 10:27) [3]Ormada кинь примерчик плз.
← →
Юрий Зотов © (2004-05-02 11:32) [4]> Lexius
Вы значительно сэкономите свои время и труд, если последуете совету [1]. Заодно, при этом Вы заведомо избавитесь от возможных ошибок.
← →
Lexius (2004-05-02 11:54) [5]Уважаемый, Юрий Зотов.
Программа у меня должна дописывать иконки, во время своей работы в некий файл, делается это для эконимии места на винте, так-как количество иконок можеть быть огромным.
т.е. Имеется файл с иконками, запускаем программу, выполняем некие действия, программа дописывает новые иконки в данный файл.
Как программно создать файл, ресурса я знаю, а как его в какое-то место запихнуть - нет, если подскажите буду благодарен!
Чисто из файла-ресурса explorer иконки не видит.
← →
Юрий Зотов © (2004-05-02 12:30) [6]> Lexius (02.05.04 11:54) [5]
Так бы сразу и сказали.
Любую информацию можно объединить в один файл, например, таким способом:
<длина_куска1><кусок1><длина_куска2><кусок2>...
Длина куска - это всегда 4 байта. То есть, читается такой файл в таком цикле:
while not EoF(...) do
begin
считать 4 байта в целую переменную N;
считать N байт в буфер;
перекачать этот буфер куда угодно
end;
Пишется в аналогичном цикле for:
- заполнить буфер откуда-то;
- записать 4 байта длины буфера;
- записать сам буфер.
И что это будет - иконки, или еще что-то - неважно. Хоть иконки с музыкой и текстом вперемешку (признак типа куска можно писать аналогично его длине).
Кстати, если иконок очень много, то Вы сможете существенно сэкономить размер файла (и, возможно, выиграть в скорости), если будете писать сжатые данные и распаковывать их при чтении (см. модуль ZLib). То есть - длина УЖЕ СЖАТОГО куска пишется в обычном виде, а сам кусок - в сжатом виде.
← →
Lexius (2004-05-02 13:03) [7]Как запихать несколько файлов в один и в случае необходимости считать их потом, я конечно понимаю. Мне необходимо чтоб epxlorer видел этот файл, как файл с иконками, и естественно их можно было лепить на ярлыки.
Есть dll, скажем, дописываем в её конец(начало или куда там и что, вот собственно проблема) иконку и устанавливаем на ярлык или папку.
IconFile=C:\Win\icons.dll
IconIndex=38
надеюсь понятно обьяснил :)
← →
Юрий Зотов © (2004-05-02 13:44) [8]> Lexius (02.05.04 13:03) [7]
IMHO.
1. Чтобы Epxlorer видел этот файл, как файл с иконками, это должен быть стандартный PE-файл.
2. Просто так дописать что-то к стандартному PE-файлу и при этом оставить его стандартным - не получится. PE-файлы компилируются.
← →
LexIus (2004-05-02 13:47) [9]Понятно, спасибо за потраченное время....
Тема закрыта.
← →
DVM © (2004-05-02 13:50) [10]
> Lexius
PE файл конечно можно построить и самому программно, но имхо трудная довольно задача, что видно из описания PE-формата. Но не боги горшки обжигают. Можно сделать. Читайте, пробуйте.
← →
Юрий Зотов © (2004-05-02 14:02) [11]> LexIus
Не уверен, но может быть...
Если речь идет о линейке NT - посмотрите в справке "Resource Functions". В частности, UpdateResource.
← →
Lexius (2004-05-02 15:00) [12]Описание PE-формата можнo взять здесь :
http://asmlib.narod.ru/files/peformatrus.rar
Может кому пригодится, штука еще та, скажу, чего конечно и следовало ожидать :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.067 c