cmdTotal 2.02: Поддержка юникодных плагинов
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
cmdTotal 2.02: Поддержка юникодных плагинов
Поскольку есть интерес в использовании утилиты cmdTotal в современном окружении, я доработал её до поддержки юникодного API. Утилита сначала пытается использовать юникодные функции, а если не получается, — обращается к плагину через ANSI-интерфейсы. Поддержка систем Win9x в данной версии отсутствует.
Ссылки на скачивание:
основная / зеркало (8,6 Кб)
P.S. Автором оригинальной программы является Adam Blaszczyk (KaKeeware). К сожалению, его сайт прекратил существование. Частично сохранённую копию исходной страницы можно найти на Internet Archive.
Ссылки на скачивание:
основная / зеркало (8,6 Кб)
P.S. Автором оригинальной программы является Adam Blaszczyk (KaKeeware). К сожалению, его сайт прекратил существование. Частично сохранённую копию исходной страницы можно найти на Internet Archive.
Последний раз редактировалось CaptainFlint Пн мар 02, 2015 22:53, всего редактировалось 4 раза.
Почему же, ё-моё, ты нигде не пишешь "ё"?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
CaptainFlint
Тестовый стенд:
- плагин ISO взятый здесь
- образ VBoxGuestAdditions.iso версии 4.2.10 из пакета VirtualBox. Образ сконветрирован в VBOXADDITIONS_4.2.10_84104.img с помощью UltraISO
- сам плагин распаковывает содержимое .img образа корректно.
- распаковка через старый cmdTotal.exe+плагин происходит с ошибками. Все файлы в корне образа распаковываются корректно, а вложенные папки распаковываются в файлы без расширения и размером все 2048 байт.
- распаковка через новый cmdTotal.exe+плагин происходит с ошибками. Все файлы в корне образа распаковываются в файлы размером 2048 байт (все, которые больше этой величины) и один с нормальным размером, т.к. он 647 байт, а вложенные папки распаковываются в файлы без расширения и размером все 2048 байт.
Проверка этих "обрезанных" файлов показывает, что это начала нужных файлов, но в них только первые 2 КБ этих файлов.
Тестовый стенд:
- плагин ISO взятый здесь
- образ VBoxGuestAdditions.iso версии 4.2.10 из пакета VirtualBox. Образ сконветрирован в VBOXADDITIONS_4.2.10_84104.img с помощью UltraISO
- сам плагин распаковывает содержимое .img образа корректно.
- распаковка через старый cmdTotal.exe+плагин происходит с ошибками. Все файлы в корне образа распаковываются корректно, а вложенные папки распаковываются в файлы без расширения и размером все 2048 байт.
- распаковка через новый cmdTotal.exe+плагин происходит с ошибками. Все файлы в корне образа распаковываются в файлы размером 2048 байт (все, которые больше этой величины) и один с нормальным размером, т.к. он 647 байт, а вложенные папки распаковываются в файлы без расширения и размером все 2048 байт.
Проверка этих "обрезанных" файлов показывает, что это начала нужных файлов, но в них только первые 2 КБ этих файлов.
Win7 SP1 Ultimate x64, TC8.52a x64
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
gora
Выложи, плиз, сам IMG-файл. Неохота ставить ультру только ради конвертации (и ещё не факт, что триалка нормально сконвертит).
Добавлено спустя 25 минут:
А впрочем, не надо, на исходной исошке тоже воспроизводится, только файлы урезаются по 20480 байт, а не по 2048.
Попробую разобраться. Там, кстати, ещё одна бага есть: если не указывать целевой каталог, а имя архива указано с путём, то распаковка не выполняется совсем. Тоже планирую поправить.
Выложи, плиз, сам IMG-файл. Неохота ставить ультру только ради конвертации (и ещё не факт, что триалка нормально сконвертит).
Добавлено спустя 25 минут:
А впрочем, не надо, на исходной исошке тоже воспроизводится, только файлы урезаются по 20480 байт, а не по 2048.
Попробую разобраться. Там, кстати, ещё одна бага есть: если не указывать целевой каталог, а имя архива указано с путём, то распаковка не выполняется совсем. Тоже планирую поправить.
Почему же, ё-моё, ты нигде не пишешь "ё"?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
gora
Выяснил, в чём дело. Вообще говоря, виноват плагин, рассчитывающий на никем не обещанное поведение и в результате падающий после извлечения первого же блока данных (этим объясняется размер в 20480 байт у файлов), а также не учитывающий собственную же информацию о том, что из его объектов является файлом, а что — каталогом. Поскольку Тотал ведёт себя иначе, чем утилитка, в нём всё работает. Подогнал найденные различия под поведение Тотала, теперь у меня исошка распаковывается корректно. Вторую найденную мной багу тоже поправил. Тестовая версия 2.01 в шапке.
Выяснил, в чём дело. Вообще говоря, виноват плагин, рассчитывающий на никем не обещанное поведение и в результате падающий после извлечения первого же блока данных (этим объясняется размер в 20480 байт у файлов), а также не учитывающий собственную же информацию о том, что из его объектов является файлом, а что — каталогом. Поскольку Тотал ведёт себя иначе, чем утилитка, в нём всё работает. Подогнал найденные различия под поведение Тотала, теперь у меня исошка распаковывается корректно. Вторую найденную мной багу тоже поправил. Тестовая версия 2.01 в шапке.
Почему же, ё-моё, ты нигде не пишешь "ё"?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
gora
Хорошо бы погонять на самых разных плагинах, чтобы убедиться, что такая заточка под ляпы конкретного плагина не отразилась на прочих. Кое-что я, конечно, тоже проверяю, но поскольку этой утилитой в целом не пользуюсь, то тщательного тестирования обеспечить не могу.
Хорошо бы погонять на самых разных плагинах, чтобы убедиться, что такая заточка под ляпы конкретного плагина не отразилась на прочих. Кое-что я, конечно, тоже проверяю, но поскольку этой утилитой в целом не пользуюсь, то тщательного тестирования обеспечить не могу.
Почему же, ё-моё, ты нигде не пишешь "ё"?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
- LonerD
- Сообщения: 1173
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Файл любой, насколько я понимаю - любой. Пример простейшего файла.
http://rghost.ru/45326129
Стоит Word 2013.
Не извлекается самый простейший вариант - word.txt (если открыть файл как архив - то извлекается).
http://rghost.ru/45326252.view
http://rghost.ru/45326129
Стоит Word 2013.
Не извлекается самый простейший вариант - word.txt (если открыть файл как архив - то извлекается).
http://rghost.ru/45326252.view
Windows 11 | TC DreamLair eternal pre-α
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация:
LonerD
Как выяснилось, проблема в плагине. Для word.txt он использует OLE-интерфейс Ворда, только вот про то, что предварительно нужно ещё проинициализировать COM-подсистему, он то ли забыл, то ли просто решил не заморачиваться. Обычно всё происходит в памяти Тотала, который для своих целей уже всё проинициализировал, поэтому с Тоталом плагин работает, а с утилитой — нет.
Я могу добавить вызов CoInitialize (проверил, с ним работает), но на каждый плагин не напасёшься. Мало ли чего ещё забудут проинициализировать, а утилитка в итоге потащит за собой ворох тяжеловесных зависимостей, нужных только для залатывания таких вот глюков. Не нравится мне эта идея…
Как выяснилось, проблема в плагине. Для word.txt он использует OLE-интерфейс Ворда, только вот про то, что предварительно нужно ещё проинициализировать COM-подсистему, он то ли забыл, то ли просто решил не заморачиваться. Обычно всё происходит в памяти Тотала, который для своих целей уже всё проинициализировал, поэтому с Тоталом плагин работает, а с утилитой — нет.
Я могу добавить вызов CoInitialize (проверил, с ним работает), но на каждый плагин не напасёшься. Мало ли чего ещё забудут проинициализировать, а утилитка в итоге потащит за собой ворох тяжеловесных зависимостей, нужных только для залатывания таких вот глюков. Не нравится мне эта идея…
Почему же, ё-моё, ты нигде не пишешь "ё"?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Откуда: Москва
- Контактная информация: