Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

SFX на KOL   Найти похожие ветки 

 
gishu   (2003-12-29 08:50) [0]

Здравствуйте.
Может есть у кого-то опыт изготовления SFX модуля для rar или zip на KOL (без DLL естественно)?
Хотелось бы увидеть пример распаковщика.
Спасибо.


 
gishu   (2003-12-29 08:54) [1]

Да, еще: Тут была идея перевести Inno в KOL... Как успехи?


 
Gandalf   (2003-12-29 17:05) [2]

1) Берешь SFX под VCL и переводишь на KOL, если это вопрос по KOL, если вопрос как в принципе сделать SFX то это оффтопик.
2) Повисло - лично у меня нет временного-ресурса на осущественние, да и нет большой необходимости, если уж нужен легкий инсталлер, я для себя сделал на 1Кб - не красотуля, зато маленький.


 
Boguslaw   (2003-12-29 18:13) [3]

Inno Setup with Innerfuse Pascal Script is very powerfull and 300 kb added for instalation is not too much. Also NSIS installer exists and is very compact but much more difficult to learn and use in complicated installations.
I see that nobody willing to do translation of Inno Setup to KOL becouse it is not worth to do in current stage, but if KOL would be multiplatform GUI , who knows ....


 
tesseract   (2004-01-10 12:16) [4]

Основная идея - билдишь exe распаковщика. теперь ты знаешь его размер. Потом просто дописываешь сой архив после конца исполнилки, исполнилка читает сама себя, потом пропускает свой размер и начинает распаковывать файл дописанный в конец - так работают все sfx файлы любого архиватора.


 
BorisMor   (2004-01-15 11:43) [5]

2 tesseract
исполнилка читает сама себя

а как он сам себя может прочесть ?
Файл не может сам себя открыт.

Inno Setup помоему помещает в темп некий файл *.tmp (он явно запускаемый или dll). Сам же модуль инстала закрывается и начинает работаь этот *.tmp


 
mdw   (2004-01-15 13:02) [6]

>а как он сам себя может прочесть ?
Файл не может сам себя открыт.

Это почему же не может? Очень даже может. На запись - проблематично, а читать - сколько угодно.


 
Alekc   (2004-01-15 20:33) [7]


> Основная идея - билдишь exe распаковщика. теперь ты знаешь
> его размер.


Угу, а при изменении исходников надо заного прописывать новый размер... А если он еще и UPX"ом сжат ?..
IMHO, лучше так:

function GetExeSize: Cardinal;
var
pInstance: PChar;
Index: Integer;
Sections: Integer;
begin
Result := 0;
pInstance := Pointer(hInstance);
Inc(pInstance, PImageDosHeader(pInstance)._lfanew + SizeOf(DWord));
Sections := PImageFileHeader(pInstance).NumberOfSections;
Inc(pInstance, SizeOf(TImageFileHeader) + SizeOf(TImageOptionalHeader));
For Index := 1 to Sections do begin
With PImageSectionHeader(pInstance)^ do
If PointerToRawData + SizeOfRawData > Result then
Result := PointerToRawData + SizeOfRawData;
Inc(pInstance, SizeOf(TImageSectionHeader));
end;
end;


 
BorisMor   (2004-01-15 22:04) [8]

2 Alekc
красиво. Xотя читать заголоовк PE и потом считать секции не самый легкий путь в решение проблемммы :)
Легче в конец файла дописывать смещение с которого начинается архив.

2 mdw
Это почему же не может? Очень даже может. На запись - проблематично, а читать - сколько угодно.
Просто было так что я пытался в поток прочесть самого себя (Ну т.е. сам работающий exe ;). Не чего у меня не вышло. Сделал вывод.


 
SPeller   (2004-01-16 10:23) [9]


> Просто было так что я пытался в поток прочесть самого себя
> (Ну т.е. сам работающий exe ;). Не чего у меня не вышло.
> Сделал вывод.

Может поток пытался открыть на чтение и запись?


 
Alekc   (2004-01-17 18:30) [10]

Зато никаких проблем с пересчетом и т.п... к тому же при скачивании архива через инет он может и не докачаться.... кто знает к чему это приведет ? ;)
P.S: И этот код - не мой...


 
Alekc   (2004-01-17 18:32) [11]

Сорри, это было к BorisMor[8]...



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
1-16442
Janbolat
2004-01-28 07:32
2004.02.06
Сохранение quickrep в формате HTML/htm


1-16393
Mr. Chel
2004-01-23 13:19
2004.02.06
DBGrid vs InplaceEditor


3-16167
bushmen
2004-01-14 12:59
2004.02.06
Изменение цвета записи в DbGrid


1-16273
MakNik
2004-01-26 10:00
2004.02.06
TEDIT


4-16786
closer
2003-12-02 16:15
2004.02.06
Закрытие таймера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский