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

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

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

(*.*)


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


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

Профиль | Сайт | Отправить 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

 

(*.*)


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

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


APOSTOL
Цитата:
Дык у тебя и нет там в пути русских букв :P
Теперь есть, я в русской Висте работаю Хотя нет, имя пользователя все равно латиницей. И тут вообще другая папка по умолчанию - C:\Users\<Username>\Appdata\Local\Temp
Цитата:
В общем так: на сейчас ОЧЕНЬ важно, утановлен ли в системе этот самый HTML Help Workshop...
Хороший и главное своевременный вопрос Я как-то на работе его ставил (по дефолту в Program Files), копировал папку в другое место, корректно удалял приложение, и после этого он из другого места работать правильно не хотел. Библиотеку ту я тоже регистрировал и подсовывал ему в папку - ничего не получалось, не в ней дело видимо. Копирование папки обратно в Program Files восстанавливало нормальную работу.
Цитата:
В результате файл таки-ДА, пересобирается, но Поиск отсутствует, а в Индексе не суммируются совпадающие статьи и он не складывается по алфавиту.
Помнишь мы с тобой разбирались, почему у меня файл меньше твоего был? Поиск не компилировался у меня вот после тех ^^ экспериментов. Сейчас я повторил эксперимент - при отсутствии Workshop в Program Files компиляция идет с ошибкой и файл создается без поиска (индекс кстати работает, но это наверное потому, что спецтеги до сих пор в теле страниц прописаны).

Process Monitor'ом сходу ничего не вычислил...

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


Отправлено: 04:47, 09-01-2007 | #51



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

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


Аватара для APOSTOL

old Teapot


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

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


Цитата:
копировал папку в другое место
Это я очень давно пробовал - нельзя ли его НЕ инсталлировать, он работать отказался. Плюнул.
Вот htm2chm 3.0 - портабелен, примерно как WinRAR - только один раз запустить, чтоб прописался в Системе.
Цитата:
Process Monitor'ом сходу
Ну, тут я естчё меньше понимаю. И на кого теперича взвалим данный пункт ?

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


Отправлено: 08:55, 09-01-2007 | #52



Moderator


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

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


А я почему-то думал, что hha.dll достаточно :( Почему я так думал, сам не знаю..
Ладно, гугль нам поможет. Как оказалось, itircl.dll вообще ни при чем, дело в itcc.dll.

Вот новый вариант:
http://tools.oszone.net/V4sechkin/CHM/UpdateCHM.7z
(перед компиляцией скрипт копирует itcc.dll в system32 и регистрирует).

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

Msgina.dll, диалог 2210

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

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


Аватара для APOSTOL

old Teapot


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

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


Petya V4sechkin, теперь всё работает как надо. Спасибо

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


Отправлено: 16:14, 09-01-2007 | #54


Аватара для APOSTOL

old Teapot


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

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


Petya, а нельзя чуть-чуть доделать MakeDiffCHM.cmd так, чтобы он, используя тот-же набор из такой же своей папки [Bin], сам мог разбирать CHM-ы ?

В смысле:
Я беру папку проекта, в которой есть [Bin] и MakeDiffCHM.cmd (ой, да, и ещё MakeDiffCHM.bat), запёхиваю туда только ДВА *.chm и один *.hhp - а MakeDiffCHM.cmd бы в лоб сравнивал эти два CHM, в порядке, указанном в MakeDiffCHM.bat, с выводом разницы в 7-zip.

Vad мне предложил самостоятельно вставить какую-то магическую формулу
Цитата:
HH.EXE -decompile D:/xTemp/decompile-folder C:/xTemp/XMLconvert.chm
но произвести какие-либо действия сложнее, чем выпучить глаза - я не смог... Я в программинге - ни ПномПень

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


Отправлено: 17:07, 27-01-2007 | #55



Moderator


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

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


APOSTOL
Конечно, можно. А надо это кому-нибудь? Вроде бы "заказчиками" изначально выступали Vadikan и Blast.

И вот это:
Цитата:
а MakeDiffCHM.cmd бы в лоб сравнивал эти два CHM, в порядке, указанном в MakeDiffCHM.bat
непонятно.

Отправлено: 19:53, 27-01-2007 | #56


Аватара для APOSTOL

old Teapot


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

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


Цитата:
А надо это кому-нибудь?
(задумчиво чеша репу) наверное только мне - это я сейчас веду CHM Клуба переводчиков... - Vadikan не даст соврать.

Цитата:
а MakeDiffCHM.cmd бы в лоб сравнивал эти два CHM, в порядке, указанном в MakeDiffCHM.bat
вот сейчас форма запуска MakeDiffCHM.cmd <папка_старого_проекта> <папка_нового_проекта>, то есть сравниваются ПАПКИ.

Так как у меня в наличии есть и "старый" CHM и "новый" CHM, в которых заведомо нет лишних файлов (а в Папках, из которых я их делаю, какой только лишней фигни не лежит) - я просто пихал оба CHM в Проект, и (гы, врукопашную) разваливал в ПАПКИ. Затем в "новую" подсовывал "новый" *.hhp. Дальше - получалась разница между этими папками. Очень удобно, учитывая что я на этот момент вряд-ли бы уже вспомнил, в каких именно файлах (или рисунках - я некоторые конвертировал для уменьшения размера) старого CHM были произведены изменения.

Вот и спрашиваю: а можно эту рукопашную всунуть внутрь утилиты, потому как сам я это сделать - ?

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


Отправлено: 20:16, 27-01-2007 | #57



Moderator


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

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


APOSTOL
Цитата:
(задумчиво чеша репу) наверное только мне - это я сейчас веду CHM Клуба переводчиков...
Так бы сразу и сказал :)

Как такой вариант?
MakeDiffCHM2.cmd <старый_chm> <новый_chm> <новый_hhp>

Отправлено: 21:17, 27-01-2007 | #58



Moderator


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

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


А как тогда задать имя Diff-файла?

Отправлено: 21:43, 27-01-2007 | #59


Аватара для APOSTOL

old Teapot


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

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


MakeDiffCHM.bat с содержанием
Цитата:
MakeDiffCHM2.cmd <старый_chm> <новый_chm>
- Да. При разборке CHM и должны получится те-же папки <папка_старого_проекта> и <папка_нового_проекта>.

Цитата:
<новый_hhp>
- не знаю, а надо-ли ? Лучше схватить тот, который рядом с CHM-файлами в Проекте лежит (с той же проверкой: "а где файл ?" и "а хрен-ли он не один ?"), и перепихнуть его в папку, получившуюся из указанного <новый_chm> - <папка_нового_проекта>.

Имя Diff-файла - из старого принципа - Diff_<старый>_<новый>, которые указаны в MakeDiffCHM.bat (в смысле, с которыми параметрами запускается утилита).

Да, и ещё: а зачем там внутри листинги отличий ? Вроде при обратной сборке UpdateCHM.cmd они участия не принимают ?

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


Отправлено: 22:32, 27-01-2007 | #60



Компьютерный форум 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




 
Переход