PDA

Показать полную графическую версию : 7zip вместо cab в дистрибутиве


fantik
14-10-2006, 21:21
Пришла в голову идея...


А что, если перепаковать все файлы в дистрибе винды из cab в 7z (пусть и с сохранением прежних имён)?

В уже установленной системе, как 7-zip так и WinRAR достойно понимают файлы, так как смотрят не по расширению, а по заголовкам.

Вопроса два :

1. Сложно ли реализовать новую библиотеку cabinet.dll вместо существующей, которая будет тупо проверять заголовки файлов при вызове Extract, и если они кабовские, вызывать оригинальную dll, а если 7z, то соответственно, другую dll с другими ключами?
2. Когда производишь поиск драйвера и указываешь винде на какую-нибудь папку, она сама находит нужный cab-файл, внутри которого искомый. Как это реализовано? Ищется сразу два файла или же сёрчит списки файлов внутри архива?

Соответственно, если возможно решить эти вопросы, можно реализовать 7-zip'ованую винду (сами прикиньте её размер :)). Или я сквозь розовые очки смотрю?

Найденная информация :
по cabinet.dll (http://support.microsoft.com/dllhelp/?fid=211867&l=55&det=1)
MSFN (http://www.msfn.org/board/index.php?act=ST&f=70&t=77115)

g7r7s7
15-10-2006, 15:10
У меня давно уже пришла в голову эта идея, только я не осмеливался ее озвучить!
Великолепная идея! Вот только как к этому Microsoft отнесется?
А было бы действительно очень классно! Особенно если реализовать даже хотябы в порядке эксперимента возможность использовать различные форматы архиваторов, чтобы понять какой лучше... Вот помню в досовскую эпоху был AIN - паковал хорошо и очень быстро! Был HA - паковал просто круто, но медленно.

fantik
15-10-2006, 21:45
Я могу попробовать написать саму библиотеку, которая будет вызывать нужные функции (эх, вспоминать придется), но мне нужна информация, как именно реализуются все стандартные операции в винде, чтобы не возникло косяка на каком-то этапе. А то винда поставится, а потом откажется с driver.cab, например, работать.

Кто-то чем-то помочь может?

fantik
16-10-2006, 20:45
Нет идей?




© OSzone.net 2001-2012