EugeneRoshal
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Inoz2000 Цитата: древняя rarext.dll будет искать *.fmt, а их там нет | Но winrar.exe ведь она тоже ищет с помощью exe64. А *.fmt для старой версии нужны не всегда. Она кэшировала значения сигнатур из *.fmt в registry и дальше могла распознавать ту часть архивных форматов, у которой есть надежные сигнатуры, без участия *.fmt. Если пользователь хочет посмотреть информацию об архиве в свойствах файла, тогда без fmt не обойтись, если распаковать tar, у которого нет надежной сигнатуры, тоже нужно загружать fmt для детального анализа. Если же надо распаковать rar, и его сигнатура уже перенесена в registry, fmt можно не загружать, а путь к winrar.exe нужно знать все равно. Да, не все старые версии rarext.dll используют exe64. И часть (или все, точно не скажу) старых версий при отсутствии exe64 умеет получать путь к winrar.exe из HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe. Но детально изучать исходники всех старых версий на предмет у кого как это реализовано, удовольствие сомнительное. Проще всем предоставить это значение. Вообще, в ситуациях, когда старой версии пусть даже с небольшой вероятностью может понадобиться какой-то ключ registry, для меня обычным подходом является не копать глубоко, а просто продолжить предоставлять этот ключ на несколько следующих версий. Через какое-то время его можно и убрать, но спешить с этим смысла нет. Ключ много места не отнимает, а, вот, время, потраченное на анализ - "точно ли не нужно" - можно потратить и с большей пользой. |