Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Наборы обновлений для Windows XP/2003/Windows 7 » Инфо - [техзадание] Распространение обновления для CHM файла

Ответить
Настройки темы
Инфо - [техзадание] Распространение обновления для CHM файла

(*.*)


Сообщения: 36497
Благодарности: 6676


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 26-09-2006
Доброго времени суток!

Возможно, тема не совсем соответствует данному форуму, но я его выбрал намеренно. Во-первых, речь все таки об обновлении, а во-вторых - здесь наиболее квалифицированная аудитория для решения подобной задачи Так что прошу модераторов отнестись с пониманием, а участиков - помочь в решении поставленной задачи. К делу!

Общая информация

Речь идет о CHM файле, в котором собраны статьи клуба переводчиков OSZone.net (ссылка в подписи). Размер файла пока невелик, но расти он будет достаточно быстро - рано или поздно возникнет ситуация, при которой посетители могут не захотеть загружать файл весом в 15-20 мб ради 5 новых статей. В сязи с этим возникла идея выпуска ежемесячных обновлений для CHM файла. Другими словами, посетитель загружает базовый файл, а впоследствии загружает только обновления небольшого размера. Безусловно, полный файл также будет предлагаться для загрузки.

Задача

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

Примерный алгоритм действий

Очевидно, для достижения поставленной задачи необходимо следующее
  1. Декомпилировать имеющийся CHM
  2. Скопировать файлы обновления в папку, где находятся извлеченные из CHM файлы
  3. Скомпилировать CHM заново

Дополнительная информация

Безусловно, необходимо будет выполнить декомпиляцию CHM из командной строки. Это можно осуществить следующим образом:
Код: Выделить весь код
HH.EXE -decompile D:/xTemp/decompile-folder C:/xTemp/XMLconvert.chm
Компилируется файл так:
Код: Выделить весь код
hhc foobar.hhp
HTMLHelp command-line

Кроме того, нужно предусмотреть возможность возникновения ситуации, в которой пользователь укажет неверный путь к CHM файлу (а также прочие отклонения от алгоритма).

Просьба
Во-первых, нужно оценить жизнеспособность идеи. Не исключено, что она неудачна или просто неосуществима.

Во-вторых, в силу катастрофического недостатка свободного времени, я не могу уделить решению данной задачи достаточно внимания. Я буду очень признателен тем участникам конференции, которые возьмут на себя труд по реализации проекта и подготовят необходимый код (пакетные файлы, конфигурационные файлы 7-zip и т.д. и т.п.).

Я постараюсь ответить на любые вопросы, связанные с проектом. Составлением CHM файла занимается Blast, который также будет участвовать в обсуждении.

Спасибо за внимание!

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 08:31, 26-09-2006

 


Moderator


Сообщения: 53206
Благодарности: 15442

Профиль | Отправить PM | Цитировать


Душераздирающая история:
http://forum.oszone.net/post-498610.html#post498504

Упростил UpdateCHM.cmd, убрав внешнюю команду XCopy (других внешних команд в скрипте нет).
http://tools.oszone.net/V4sechkin/CHM/UpdateCHM.cmd

Последний раз редактировалось Petya V4sechkin, 16-10-2006 в 17:44.


Отправлено: 17:30, 16-10-2006 | #41



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 894
Благодарности: 137

Профиль | Отправить PM | Цитировать


Vadikan
А если пойти по другому пути?
0. Индекс
1. Первый Базовый файл. Например лимит в 3 мега.
2. Второй Базовый файл.
3. Третий Базовый файл.
х. текущий файл обновления.

Идея втом, что мы заменяем индекс и добавляем статьи как новые так и измененные в новый файл.
При добавлении все просто, просто - замена в индексе, при изменении статьи сложнее, нужно будет зарубить ссылку на старую версиию, и перенаправить на новую. Еще одна проблемка, это ссылки из других статей на изменяемую.

P.S. сильно не пинай если что, возможностей chm не знаю, просто идею генерирую.

P.P.S. 2 ALL
Народ, вы чето углубились в дебри. Я конечно понимаю, что большинство unattended сборшиков в некоторой степени программеры, но не настолько же.... :(
Хотя я и сам программер, но скачивать и чего то там декомпилировать/компилировать нехочу... По работе этого хватает...

Если для Автоматизации установки, я еще пойду на такую жертву, то для других док, не хочу.
А то что если удасться решить эту проблему элегантным способом, она будет растирожирована по всему сайту, я не сомневаюсь.

Кстати, а кто нибудь проверял как ведет себя комплект когда есть русские буквы в %Temp%?

-------
Я не развожу политику в подписи
ПТН ПНХ

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:09, 03-01-2007 | #42


Аватара для APOSTOL

old Teapot


Сообщения: 1767
Благодарности: 53

Профиль | Отправить PM | Цитировать


Я проверял, давно правда, ещё 11 ноября.
Работал в папке с содержательным названием с пробелами и на кирилике [D:\Н A Д O\Обновление]. Нормально работает. Но совсем не так, как хотелось бы лично мне для обновления "Клуба переводчиков".

В том плане, что в простенький CHM - вполне можно впихать обновление.
Но вот ни Индексирование ни Поиск этим способом - не получится.

Дал вагон и маленькую тележку замечаний в почту Vadikan-у, но так на этом пока всё и закончилось.

-------
Лежит боец - не справился с атакой...


Отправлено: 23:07, 03-01-2007 | #43


(*.*)


Сообщения: 36497
Благодарности: 6676

Профиль | Сайт | Отправить PM | Цитировать


Цитата vserd:
А если пойти по другому пути?
0. Индекс
1. Первый Базовый файл. Например лимит в 3 мега.
2. Второй Базовый файл.
3. Третий Базовый файл.
х. текущий файл обновления.
Я рассматривал такой вариант, но я вижу большое удобство CHM-файла в наличии полнотекстового поиска. В системе из нескольких файлов вроде искать сразу по всем не удастся.

Цитата APOSTOL:
Но вот ни Индексирование ни Поиск этим способом - не получится.
Индекс не работает, если он формируется из спецтегов в страницах - при распаковке они не сохраняются. Но я переделал индекс - теперь он в виде отдельного файла. Поиск у меня тоже работает, кстати. Вообще, у меня все работает, как надо (кроме кириллицы в путях, конечно).
Цитата vserd:
Народ, вы чето углубились в дебри. Я конечно понимаю, что большинство unattended сборшиков в некоторой степени программеры, но не настолько же....
Да на самом деле, все очень просто. Для конечного пользователя все сводится к:
1. Загрузке Update Kit. Постоянный набор файлов для произведения всех операций достаточно загрузить один раз. Размер чуть больше 500 кб.
2. Загрузке обновления. В зависимости от количества картинок размер будет варьироваться, конечно. Текст-то жмется хорошо.
3. Запуску пакетного файла из Update Kit (при условии, что файлы пп. 1 и 2 в одной папке с имеющимся chm.

В принципе, все. Не сложнее аддона Специалист же делал
Цитата:
Кстати, а кто нибудь проверял как ведет себя комплект когда есть русские буквы в %Temp%?
А Temp там и не участвует - только текущая папка CHM.

Petya V4sechkin
А можно в MakeDiffCHM.cmd условие добавить, чтобы при сравнении старой и новой версии игнорировался файл unattended.oszone.net.chm? Просто в index.hhp путь к результирующему CHM-файлу прописан относительно расположения index.hhp - создается в той же папке -> мешает при сравнивании. Мне кроме IF EXIST ... COPY трудно придумать что-то. Спасибо!

APOSTOL
Загрузи, плиз, текущую версию учебника когда время будет, я тебе на тестирование пришлю все файлы текущего обновления (само оно 33 кб в архиве).

P. S. В этом сообщении я говорю применительно к учебнику по автоустановке, а не к статьями клуба переводчиков.

-------
Канал Windows 11, etc | Чат @winsiders


Последний раз редактировалось Vadikan, 08-01-2007 в 08:15.


Отправлено: 05:57, 08-01-2007 | #44


Аватара для APOSTOL

old Teapot


Сообщения: 1767
Благодарности: 53

Профиль | Отправить PM | Цитировать


Цитата:
говорю применительно к учебнику..., а не к статьями...
Vadikan, завтра стащу, встречно задвигая Клуб на ФТП. Шлите апельсины бочками ©

Цитата:
1. Загрузке Update Kit.
А там будут 7za.exe, hhc.exe и hha.dll ?
Что-то на дефолтовой Винде я такого не нашёл, а то, что натаскал "слева" обладает интересным свойством: очень значительной разницей в размерах одноимённо-натасканных файлов. Есть надежда, что именно поэтому я потерял Поиск. Хотелось бы, чтоб ВСЕ работали с одними и теми же файлами Kit.

Вот куда нить поклали-бы его до кучи прям щас... Или я что-то здесь пропустил ?

А насчёт
Цитата:
когда есть русские буквы в %Temp%?
Сомнительно, что у интересующегося унаттендой, вплоть до желания самостоятельно обновляться, до сих пор эта папка не вЫровнена до корня

-------
Лежит боец - не справился с атакой...


Отправлено: 13:47, 08-01-2007 | #45



Moderator


Сообщения: 53206
Благодарности: 15442

Профиль | Отправить PM | Цитировать


Vadikan
Цитата:
А можно в MakeDiffCHM.cmd условие добавить, чтобы при сравнении старой и новой версии игнорировался файл unattended.oszone.net.chm? Просто в index.hhp путь к результирующему CHM-файлу прописан относительно расположения index.hhp - создается в той же папке -> мешает при сравнивании.
Готово:
http://tools.oszone.net/V4sechkin/CHM/MakeDiffCHM.cmd
Для универсальности игнорируются все файлы с расширением .chm, ведь вряд ли они могут быть внутри проекта?

P. S. Чего-то команда fc /b перестала мне нравиться - если файлы слишком разные и большие по размеру, сравнение жестко тормозит за счет того, что оно пытается вывести все различия в stdout (или в >nul, не важно). Может, накропаю программку для сравнения, более быстро работающую..

P. P. S. UpdateCHM.cmd тоже чуток обновлен - теперь удаление папки New остается на совести пользователя (чтобы скрипт, не дай бог, не удалил чего-нибудь нужного).

-------
«Компьютеру стало совсем худо, и он решил прекратить свои страдания».

Msgina.dll, диалог 2210


Последний раз редактировалось Petya V4sechkin, 08-01-2007 в 19:10.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:07, 08-01-2007 | #46



Moderator


Сообщения: 53206
Благодарности: 15442

Профиль | Отправить PM | Цитировать


APOSTOL
Вроде бы все достаточно доходчиво описано на 3-ей странице:
http://forum.oszone.net/post-494875-22.html

Update Kit я пока не выкладывал отдельно (только в составе тестовой среды), поскольку сабж не внедрялся.
Если надо - пожалуйста (размер 535 кило).

P. S. Кстати говоря, если где-то существуют файлы hhc.exe, hha.dll версий более свежих, чем 4.74.8702 (из HTML Help Workshop), киньте ссылочку.

-------
«Компьютеру стало совсем худо, и он решил прекратить свои страдания».

Msgina.dll, диалог 2210


Отправлено: 15:44, 08-01-2007 | #47


Аватара для APOSTOL

old Teapot


Сообщения: 1767
Благодарности: 53

Профиль | Отправить PM | Цитировать


Petya V4sechkin, всё доходчиво. Vadikan использует меня в качестве тупого ламера для наступания на такие грабли, которые остальные просто не заметят.

Цитата:
Update Kit в составе тестовой среды
Представляешь, как я обрадовался, когда скачал 6 Метров по модему и обнаружил внутри 5.5-Метровый Клуб версии 0.9

-------
Лежит боец - не справился с атакой...


Отправлено: 19:04, 08-01-2007 | #48


(*.*)


Сообщения: 36497
Благодарности: 6676

Профиль | Сайт | Отправить PM | Цитировать


Хотя изначально в теме речь шла о статьях клуба переводчиков, я учебник держал в уме в любом случае. Теперь, когда статьи клуба разбиты на три файла идею vserd надо обдумать, но именно для удобства доступа сразу ко всем файлам из одного индекса. Насчет обновлений я пока не уверен... Слишком много мелких обновлений для разных файлов тоже могут запутать Учебник же, по крайней мере, один

APOSTOL
Цитата:
Представляешь, как я обрадовался, когда скачал 6 Метров по модему и обнаружил внутри 5.5-Метровый Клуб версии
Именно поэтому я и сказал, что выложу сам
Цитата:
Vadikan использует меня в качестве тупого ламера для наступания на такие грабли, которые остальные просто не заметят.
Эээ... я никогда не думал о такой форумулировке, однако проблемы неопытных пользователей тебе почему-то понятнее, чем мне
Цитата:
Сомнительно, что у интересующегося унаттендой, вплоть до желания самостоятельно обновляться, до сих пор эта папка не вЫровнена до корня
Я, например, не меняю значение этой переменной

Petya V4sechkin
Цитата:
Готово:
http://tools.oszone.net/V4sechkin/CHM/MakeDiffCHM.cmd
Для универсальности игнорируются все файлы с расширением .chm, ведь вряд ли они могут быть внутри проекта?
Спасибо! Я протестирую попозже. Конечно, там в проекте .chm файлов быть не должно.
Цитата:
. Чего-то команда fc /b перестала мне нравиться - если файлы слишком разные и большие по размеру, сравнение жестко тормозит за счет того, что оно пытается вывести все различия в stdout (или в >nul, не важно). Может, накропаю программку для сравнения, более быстро работающую..
Думаю, что в этом нет особой нбх. Типичные изменения в учебнике помимо файлов нбх для компиляции затрагивают несколько html-файлов - лог обновлений и главная страница всегда, плюс несколько других страниц. Размер файлов не очень большой.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 20:56, 08-01-2007 | #49


Аватара для APOSTOL

old Teapot


Сообщения: 1767
Благодарности: 53

Профиль | Отправить PM | Цитировать


- Хуже, чем просто наступить на грабли - это наступить на детские грабли...
Цитата:
до сих пор эта папка не вЫровнена до корня
Я, например, не меняю значение этой переменной
Дык у тебя и нет там в пути русских букв :P

В общем так: на сейчас ОЧЕНЬ важно, утановлен ли в системе этот самый HTML Help Workshop...
У вас у всех он установлен

Винды проверял две: русская и английская, обе SP2. Естественно, обе - левые. На английской HTML Help Workshop никогда не ставился.

При его отсутствии ни фига нормально не работает, наверняка потому, что
Цитата:
Компиляция:
HHC6003: Error: The file Itircl.dll has not been registered correctly.
Microsoft HTML Help Compiler 4.74.8702
Попытки регистрации regsvr32 Itircl.dll проходит успешно (в Винде есть такая в System32), но результат - не меняется. Пытался подсунуть саму эту DLL во все папки поближе - по барабану.
В результате файл таки-ДА, пересобирается, но Поиск отсутствует, а в Индексе не суммируются совпадающие статьи и он не складывается по алфавиту.

При установке HTML Help Workshop - всё работает просто замечательно. Работает ВСЁ и правильно. В папке с любым количеством пробелов и русских букв.

При деинсталляции HTML Help Workshop получаем обратно первый вариант, один-в-один.

Во-вторых: в пакете от Petya V4sechkin, который "размер 535 кило", файлы с размерами

7za.exe - 466
hha.dll - 819
hhc.exe - 51

у меня есть такие же файлы, тех же версий (в свойствах файла), с датой создания на час позже, но размеры

7za.exe - 461
hha.dll - 420
hhc.exe - 27

правда, плющатся в 7-zip гораздо хуже, 598 получается. Работают - одинаково. Где тут фишка - не понял.

-------
Лежит боец - не справился с атакой...

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:54, 08-01-2007 | #50



Компьютерный форум OSzone.net » Автоматическая установка Windows » Наборы обновлений для Windows XP/2003/Windows 7 » Инфо - [техзадание] Распространение обновления для CHM файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Распространение файла реестра на компьютеры в домене admiForever Microsoft Windows NT/2000/2003 15 19-12-2009 11:39
Доступ - Отображение CHM-файла с сетевого диска Gangabass Microsoft Windows Vista 3 30-06-2008 07:40
Проблема копирования файла addremov.chm после интеграции SP2 -Fred- Автоматическая установка Windows 2000/XP/2003 3 20-02-2007 16:25
кодировка файла CHM WChek Программирование и базы данных 1 25-01-2007 21:33
Открытие CHM-файла в полноэкранном режиме Dj_Fly Программное обеспечение Windows 15 09-12-2006 09:21




 
Переход