Blog. Just Blog

HtmlHelp Wrapper 1.4

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Мои программы | Автор: ManHunter
Скриншот программы HtmlHelp Wrapper
Скриншот программы HtmlHelp Wrapper

HtmlHelp Wrapper - это программа-обертка для открытия .CHM-файлов и .HLP-файлов из командных файлов или приложений. От обычной утилиты HtmlHelp, которая идет в комплекте Windows, эта программа отличается тем, что при открытии файла справки позволяет искать ключевые слова, а для CHM-файлов дополнительно автоматически синхронизировать список ключевых слов и открытой статьи, а также открывать более одной копии справки для отдельного приложения и закрывать открытую справку по нажатию Esc. Кроме своих функций и параметров запуска, поддерживаются все стандартные ключи утилиты HtmlHelp, поэтому можно заменить файл hh.exe в папке Windows на HtmlHelp Wrapper (не забывайте про резервные копии).

Использование:

htmlhelp "my_file.chm[::topic]" "[-kw:keyword]"
Просто открыть файл справки:

htmlhelp "C:\My Folder\my_file.chm"
Открыть файл справки на заранее известной странице:

htmlhelp my_file.chm::/res/topic_1.html
Поиск по справке отдельного слова или нескольких:

htmlhelp my_file.chm -kw:sample
или
htmlhelp my_file.chm "-kw:words to search"

Декомпиляция CHM-файла:

htmlhelp -decompile my_folder my_file.chm
или
htmlhelp -d "C:\My Folder\my_file.chm"

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

HtmlHelp Wrapper 1.4HtmlHelp Wrapper 1.4

HtmlHelp.Wrapper.1.4-PCL.zip (15,705 bytes)


Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 10455 | Комментариев: 41

Комментарии

Отзывы посетителей сайта о статье
ManHunter (13.02.2019 в 11:43):
Еще добавил функционал, чтобы при закрытии окна справки автоматически активировалось следующее открытое окно справки. Пока не уверен, насколько это удобно и нужно ли это вообще, надо поработать, поэкспериментировать.
ManHunter (13.02.2019 в 11:30):
Проблема локализована и исправлена. В следующей версии все заработает как надо.
Павел (12.02.2019 в 20:56):
Предложение.
Если попытаться открыть уже открытый файл, как я понял, программа проверяет эту ситуацию и повторно файл не открывает. Создаётся впечатление, что что-то сбойнуло и файл по какой-то причине вообще не открылся. Предлагаю в подобной ситуации делать активным окно htmlhelp с этим открытым файлом.
Павел (12.02.2019 в 17:19):
Спасибо! У меня нашлось несколько файлов, которые предыдущая версия открывала, но содержимое не показывала. Только собрался написать, а программа уже обновилась и те файлы открываются нормально :)
Wave (23.01.2019 в 16:22):
Спасибо!
ManHunter (23.01.2019 в 15:44):
Я уже переписал враппер без всяких диалогов. Сам с ним поработал и мне понравилось. Так что ждите новую версию. За это время может еще какие-то интересные мысли появятся.
Wave (23.01.2019 в 15:41):
У меня винда не высвечивает никаких предупреждений. Возможно, из-за отключенного UAC. В том-то и проблема, что файл в таких случаях открывается без вопросов, но отображает белый лист вместо страниц хелпа. И нужно ещё вспомнить, что дело в потоках. Потому что когда редко с этой ситуацией сталкиваешься, вспомнить бывает проблематично.
Что касается безопасности, в данном случае это калитка посреди чистого поля. Можно скачать архив, в котором chm запакован безо всяких потоков. Можно ещё миллион способов придумать, из-за которых этот механизм будет бесполезен. В том числе социальных: скачайте этот файл, зайдите в свойства, разблокируйте, после чего запускайте. И это не говоря уже о том, а часто ли вообще встречается какая-то зараза именно в составе chm? Потому что по моим впечатлениям — это Неуловимый Джо.
И да, если что, я либо за безоговорочное открытие, либо за ini с соответствующей настройкой, но не за дополнительный диалог. Хотя учитывая редкость ситуации, дополнительный диалог будет очень редко, так что переживу.
ManHunter (21.01.2019 в 21:28):
Поэкспериментировал. Пожалуй, диалог действительно лишний. Винда при открытии файла и так вываливает свое сообщение безопасности, дублировать его не имеет смысла. При подтверждении открытия файла от винды враппер будет автоматически и молча удалять поток Zone.Identifier.
Евгений (21.01.2019 в 18:04):
Может, сделать маленький ini-файлик, который будет лежать рядышком с исполняемым файлом программки, содержащий одну строчку типа "safemode=1\0" и прогга будет его чекать? Еще и задел будет на другие возможные опции. Просто диалог перед открытием файла, мне кажется, немного раздражающий (особенно при количестве файлов более нескольких).
ManHunter (21.01.2019 в 13:14):
Запилил с диалогом. Если поток Zone.Identifier присутствует и в нем указана недоверенная зона (3 или 4), то выводится предупреждение. В случае получения согласия от пользователя поток будет удален и файл разблокируется. Выложу в следующей версии, надо еще потестировать.
ManHunter (20.01.2019 в 14:44):
Евгений, дык, программа не имеет интерфейса, чтобы галочки где-то ставить. Сделаю диалог подтверждения при открытии файла, это, как мне кажется, будет оптимальным вариантом.
Евгений (19.01.2019 в 00:59):
Дык, а что там думать-то? Сделать галочку в настройках проги типа "включить безопасность или выключить" - кому надо - тот выключит. Не?
ManHunter (17.01.2019 в 16:20):
Wave, у меня была мысль это сделать, но тогда придется удалять этот поток, иначе файл один фиг не откроется. А безопасность сделана же не просто так, хоть в 99,9% случаев это действительно не нужно. Я еще подумаю и окончательное решение оставлю на следующую версию.
Wave (17.01.2019 в 14:13):
А ещё было бы очень неплохо показывать файлы не смотря на наличие в них :Zone.Identifier:$DATA. А то вечно так, скачаешь chm из инета, а он не открывается. И пока не вспомнишь, что надо удалить лишние ntfs-потоки, не откроешь.
ManHunter (16.01.2019 в 11:16):
Версия 1.4. Разобрал по винтикам стандартную виндовую hh.exe, на ее основе скорректировал работу HtmlHelp Wrapper. Теперь все CHM-файлы, которые открывались в стандартном приложении, абсолютно корректно открываются в моей программе, при этом сохраняются все фичи типа закрытия по Esc, поиска по F3 и т.п. Проверяются имена файлов на предмет того, если в имени встречаются комбинации, которые не может открыть виндовый модуль hhctrl.ocx, типа "#", ".col". Выводится сообщение с указанием причины и рекомендации по их устранению. Добавлена декомпиляция CHM-файлов с улучшениями: если целевой папки нет, то она будет создана, ключ декомпиляции можно сокращать до "-d", целевую папку можно не указывать, в этом случае она будет создана на основании имени исходного файла. Исправлены ошибки, выполнена оптимизация кода. Теперь это точно полноценная замена системному hh.exe
Павел (17.09.2018 в 16:38):
Жаль. Пока использую, но буду продолжать искать замену hh (для открытия файлов из FAR-а по ENTER).
ManHunter (17.09.2018 в 16:01):
В HtmlHelp Wrapper через командную строку не откроются внутренние страницы с пробелами, наверняка могут быть еще какие-нибудь ограничения. И пути с юникодом не откроются, даже если добавить их поддержку в саму программу. Увы, тут я уже ничего не сделаю. Полноценной замены hh не получилось, но с нужными мне задачами HtmlHelp Wrapper успешно справляется.
Павел (17.09.2018 в 15:33):
Вот ещё один экземпляр (компилировал через hhc).
https://yadi.sk/d/Yv-eJKQkJvBKVQ
Не отображает содержимое. Обычный hh.exe отображает. Дело, похоже, в имени файла, содержащем в имени ".chm".

Ещё такой момент. Вот здесь https://habr.com/post/54982/ писали, что через hh не открываются файлы, содержащие в пути к файлу последовательность ".col". Обнаружил, что не открываются ещё и файлы, содержащие в пути ".chm". Не открываются как hh так и Вашей htmlhelp.exe. Это как-то решаемо?
ManHunter (14.09.2018 в 12:18):
Потестировал еще на разных файлах, одностраничники должны четко открываться.
Павел (12.09.2018 в 16:57):
Спасибо за доработку. Потестирую.
ManHunter (12.09.2018 в 11:08):
Не все есть онлайн, да и не всегда онлайн-справочники удобнее. Например, мануал по PHP, для которого, собственно, это все и задумывалось, гораздо быстрее открывать именно в оффлайновом варианте.
u-b0at (12.09.2018 в 10:09):
О! CHM-файлы) Давно не открывал их)))
Сейчас вся справочная инфа переместилась в тырнет.
ManHunter (11.09.2018 в 10:36):
Версия 1.3. Исправлена работа с CHM без индексов, при открытых дополнительных окнах (поиск, о программе, url и т.п.) по нажатию Esc закрывается дополнительное окно, а не основное. Поиск в CHM также открывается по F3, а не только по Ctrl+F. Прочие мелкие исправления и дополнения.
Павел (05.09.2018 в 13:01):
К сожалению, у Вас на сайте дата статьи не обновляется. Узнать, что что-то изменилось и выложена новая версия программы можно только специально отслеживая страницу и читая коментарии :(
ManHunter (04.09.2018 в 21:38):
Одностраничники тоже вроде победил, но пока не выкладываю, надо потестить.
ManHunter (03.09.2018 в 14:52):
Поведение Esc поправил, заодно добавил поиск по F3, чтобы меньше нажимать :) Могу еще какую-нибудь дополнительную кнопку или комбинацию на него забиндить. Архив обновлен.

По поводу одностраничника пока обрадовать нечем, штатными способами сделать это не получилось. Надо будет почитать мурзилки по внутреннему формату CHM. Это обязательно будет исправлено, но не быстро.
Павел (03.09.2018 в 12:34):
Вот пример файла https://yadi.sk/d/wwDj9cJh3aoSm6

П.С. А окно поиска, оказывается, с клавиатуры закрыть можно. По Alt-F4 (!). Или через меню Alt-Space. Пока не столкнулся с Вашей программой даже не подозревал об этом :)

Блин, сейчас ещё поэкспериментировал с hhc, гипотеза с "Default topic" не подтвердилась.
ManHunter (03.09.2018 в 12:16):
Павел, по поводу поиска подумаю, что можно сделать. Пожелание абсолютно правильное и разумное. А вот тестовый файл лучше приложить. Собрать самому не проблема, конечно, но для чистоты эксперимента предпочитаю работать с "материалом заказчика" :)
Павел (03.09.2018 в 12:09):
Иногда встречаются chm файлы, содержимое которых не показывается в Вашей программе. Например, chm файлы сгенерированные программой htm2chm из единственного html файла. Эксперимент с компилятором hhc показал, что такое происходит, если в проекте не задать параметр "Default topic". При этом штатный hh.exe, а также sumatrapdf и xchm содержимое таких файлов показывают нормально.

И если можно, маленькое пожелание. То, что программа закрывается по Esc это очень здорово. Но то, что программа закрывается по Esc если открыто окно поиска, вместо ожидаемого закрытия только окна поиска не очень здорово, так как по другому с клавиатуры поиск не закрыть (кроме как мышкой). Нельзя ли это исправить?
ManHunter (12.04.2018 в 18:08):
ЦитатаПрограмма на ассемблере или на c/c++?

Ассемблер

ЦитатаМожно ли глянуть сорцы?

Конечно. Дизасм в руки и в вперед.
trdm (12.04.2018 в 17:44):
Привет. Программа на ассемблере или на c/c++?
Мне хочется сделать нечто подобное для Notepad++ собираю информацию.
Однако мне хотелось бы вытащить *.hhc из *.chm, распарсить, закинуть в дерево и организовать нечто наподобие:
https://github.com/trdm/jn-npp...Doc/vi_2.gif
Скрипт для парсинга уже написал и он строит нечто вроде:
https://github.com/trdm/hlam/b.../NppHelp.gif
Используется IE + frameset + javaScript
К сожалению такое архитектурное решение грешит недостатками и решил переписать на c++.
Можно ли глянуть сорцы?
Vladimir (21.11.2016 в 18:04):
Это самое волшебное, когда программа закрывается по Esc. Этого обычно дико не хватает и потому так ценю софт, где это предусмотрено.
ManHunter (19.11.2016 в 02:19):
Версия 1.2. Справка CHM закрывается по кнопке Esc. Мелкие исправления и доработки.
ManHunter (22.07.2014 в 11:44):
Исправлено поведение программы в режиме замены hh.exe. Архив обновлен, мои благодарности Anonymous.
ManHunter (17.07.2014 в 13:37):
Это винда почему-то передает параметр как есть, без кавычек. Мысль понял, поправлю в следующей версии. Спасибо!
Anonymous (17.07.2014 в 13:26):
Если в Windows 7 (любой разрядности) заменить стандартный hh.exe на HtmlHelp Wrapper, то при двойном щелчке по файлам справки, расположенным по путям, содержащим пробел (например, "C:\Program Files\Total Uninstall\Tu_en.chm"), выдаётся сообщение, что файл справки в устаревшем формате hlp (что, очевидно, бред) и предлагается загрузить просмотрщик HLP-файлов, который тоже делу не помогает. Со стандартным hh.exe всё открывается нормально. Проблема, скорее всего, именно из-за пробелов в пути к файлу, поскольку файлы типа C:\Tu_en.chm открываются враппером нормально.
ManHunter (09.07.2014 в 00:31):
Версия 1.1. Добавлена поддержка .HLP-файлов. Вызов с теми же параметрами, как и для CHM. Теперь через этот враппер у меня прикручен файл справки WIN32.HLP для Ассемблера в Sublime Text.
brute (04.10.2013 в 18:06):
точно! если не занаешь или забываешь, то надо написать шпоргалгу и носить с собой - будет где посмотреть.
ManHunter (04.10.2013 в 12:05):
У нас преподы говорили чуть иначе: "Не надо всего знать, надо знать где можно узнать". Особенно это актуально с нестандартизированным написанием функций PHP.
Андрей (04.10.2013 в 12:00):
Старый полковник говаривал "знания должны быть либо в голове, либо с собой".
ManHunter (01.10.2013 в 08:22):
Предвещая вопрос "зачем это вообще надо?". У меня HtmlHelp Wrapper прикручен через плагин к Sublime Text, и используется для открывания файла справки по функциям PHP.

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2019
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 2 (0.0025 сек.) / Память: 5 Mb
Наверх