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)
А что, если перепаковать все файлы в дистрибе винды из 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)