Файлы справки Windows - какие есть варианты?

В прежние времена справка была не простой, а возможной: сгенерируйте какой-нибудь забавный файл.rtf со специальными тегами, запустите его через компилятор, и вы получите файл WinHelp (.hlp), который действительно работает действительно хорошо.

Затем Microsoft решила, что WinHelp больше не является хип-хопом и переключилась на CHM, вплоть до того момента, когда они фактически отказались от WinHelp из Vista.

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

Хотя есть способы заставить CHM работать вне сети, это вряд ли удачный выбор, потому что, когда пользователь нажимает кнопку "Справка", ему нужна помощь, и ему не нужно устанавливать какие-то непонятные настройки.

Итог: я считаю CHM абсолютно непригодным для использования. Но поскольку WinHelp больше не является опцией, мне интересно, какие есть альтернативы, особенно когда речь идет об интеграции с моим приложением (т. Е. Для WinHelp и CHM есть функции, позволяющие напрямую перейти к теме)?

Недостатком PDF является необходимость использования Adobe Reader (или одного из более легких, которые используют не так много людей). Я мог бы жить с этим видением, так как это является своего рода стандартом в наше время, но можете ли вы сказать ему надежно перейти на заданную страницу / якорь?

HTML-файлы кажутся лучшим выбором, вам просто нужно иметь дело с различными браузерами (CSS и прочее).

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

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

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

10 ответов

Решение

HTML будет следующим лучшим выбором, ТОЛЬКО ЕСЛИ вы будете обслуживать их с общедоступного веб-сервера. Если вы попытаетесь связать его с вашим приложением, все файлы (и изображения (и таблицы стилей (и...))) сделают CHM похожим на подарок от богов.

Тем не менее, когда на самом деле в комплекте с установочным пакетом (вместо обслуживания по сети), я обнаружил, что файлы CHM работают хорошо.

OTOH, еще один подводный камень о файлах CHM: даже если вы попытаетесь открыть файл CHM на локальном диске, вы можете столкнуться с блоком безопасности, если вы изначально загрузили его откуда-то, потому что файл может быть помечен как "поступил из внешнего источника" когда это было получено.

Мне не нравится опция html, и я фактически перешел из простого HTML в CHM, сжимая и индексируя их. Даже использовать их на кучу не-Windows клиентов даже. Это просто решило постоянную небольшую поломку людей, помещающих его в сеть (ограниченная глубина вложения, странные эффекты блокировки), антивирус, который умер в каталогах с 30000 html-файлами, и 20 минут времени декомпрессии при установке в старой системе, зонах безопасности браузера и особенности, просчеты необходимого места в установщике и т. д.

И затем я даже не включаю людей, которые начинают "исправлять" их, сторонний продукт с ошибочными попытками "интеграции" и т. Д., Жалобы на медлительность (запуск браузера)

Мы все ждали годами, когда проблемы исчезнут, поскольку операционные системы и оборудование улучшатся, но проблемы продолжали повторяться в ошеломляющем количестве вариантов, и этого было достаточно. Мы нашли chmlib и решили, что всегда можем использовать что-то, основанное на этом, как escape с простым внешним считывателем, если предоставленные ОС перестали работать и переключаться.

Между тем, у нас также есть собственный компилятор, поэтому мы не подвержены риску использования MS. Это не значит, что мы никогда не изменимся (решения с локальными веб-серверами сейчас кажутся любимыми), но, по крайней мере, у нас есть выбор.

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

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

Пока что все типы отдельных файлов для Windows, так или иначе, нарушены:

  • WinHelp - устарел
  • HtmlHelp (CHM) - устарел в Vista, не работает с общего сетевого ресурса, кроме этого работает очень хорошо
  • Справка Microsoft 2 (HXS) - кажется, что это работает вплоть до того момента, когда это не так, поврежденные индексы или тому подобное, это используется Visual Studio 2005 и выше, в качестве примера

Вопрос в том, как создать свои собственные файлы справки, или какой формат файла справки лучше?

Лично я считаю CHM отличным. Одна из первых вещей, которые я делаю при настройке машины, - это загрузить Руководство по PHP в формате CHM ( http://www.php.net/download-docs.php) и добавить к нему горячую клавишу в Crimson Editor. Поэтому, когда я нажимаю F1, он загружает CHM и выполняет поиск по слову, на котором находится мой курсор (отлично подходит для быстрого ознакомления с функциями).

Если вы не хотите использовать установщик и не хотите, чтобы пользователь выполнял какие-либо дополнительные действия, чтобы разрешить файлы CHM по сети, почему бы не использовать WinHelp? Vista не включает в себя WinHlp32.exe из коробки, но она свободно доступна для загрузки как для Vista, так и для Server 2008.

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

  • Справочный источник DITA- компилятора XML, хранящийся в SCC (ClearCase).
  • Помогите редактировать XMetal
  • Компиляция справки, настроенный Open DITA Toolkit, с настраиваемой предварительной обработкой Perl/Java
  • Справочный источник ссылается на ресурсы приложений во время компиляции, файлы.RC и т. Д.
  • Справочные материалы из одного источника, PDF, CHM, Eclipse Help, HTML.
  • Репозиторий с одним источником предоставляет помощь для нескольких продуктов 10+ с тысячами общих тем.

Из того, что вы описываете, я посмотрю на справку Eclipse, ее непросто интегрировать в приложения.NET или MFC, вам в основном нужно выполнить сопоставление справки, чтобы разрешить запрос к URL, а затем запустить URL для оболочки справки Eclipse или браузера.

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

Я планирую загрузить контент в огромную серию XML-файлов, каждый из которых содержит справку для определенного элемента. Этот XML будет содержать ссылки на другие файлы XML. Мы будем использовать XSLT для отображения содержимого по мере необходимости.

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

Недостатком PDF является необходимость в Adobe Reader

Я использую Foxit Reader на Windows дома и на работе. Гораздо меньше и очень быстро открывается. Очень удобно, когда вам интересно, что такое a80000326.pdf и почему он забивает вашу папку документов.

Если вы делаете "просто распаковать и запустить", вы будете работать в вопросах безопасности. Это особенно верно, если вы используете Vista (или более позднюю версию). Есть ли причина, по которой вы хотели избежать упаковки ваших приложений внутри установщика? Использование установщика уменьшит проблему с "внешним источником". Вы сможете без проблем использовать файлы.chm.

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

Я использую коммерческий пакет AuthorIT, который может генерировать несколько различных форматов, таких как chm, html, pdf, word, windows help, xml, xhtml и некоторые другие, о которых я никогда не слышал (dita звонит в колокольчик?). Это система управления контентом, ориентированная на потребности разработчиков технической документации. Преимущество заключается в том, что вы можете использовать и повторно использовать один и тот же контент для создания набора руководств, а затем создавать их в разных форматах.

Таким образом, суть в том, что касается вопроса выбора chm или html или чего-то еще: если вы используете это, вы не привязаны к определенному формату, но вы можете предоставить несколько, среди которых пользователь может выбирать, и вы даже можете добавить больше форматов. по мере продвижения, без каких-либо дополнительных затрат.

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

Другие вопросы по тегам