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

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

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

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

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

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

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

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

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

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

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

Ответов (10)

Решение

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

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

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

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

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

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

Пока что все однофайловые типы для Windows кажутся так или иначе сломанными:

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

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

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

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

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

PDF имеет недостаток в том, что для этого требуется Adobe Reader.

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

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

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

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

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

  • Источник справки 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.

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

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

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

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