В прежние времена Help не было тривиальным, но возможно: сгенерируйте некоторый funky.rtf файл со специальными тегами, запустите его через компилятор, и у вас есть файл WinHelp (.hlp), который действительно работает очень хорошо.
Затем Microsoft решила, что WinHelp больше не будет хип и круто, и переключился на CHM, вплоть до того, что они фактически остановили WinHelp от Vista.
Теперь CHM может быть приятным, но все, кто пытался открыть файл .chm в сети, будут знать, что красивый экран "Навигация к веб-странице был отменен", вызванный ограничениями безопасности.
Хотя есть способы сделать работу CHM отключенной от сети, это вряд ли хороший выбор, потому что, когда пользователь нажимает кнопку "Справка", он хочет получить помощь и не должен делать некоторые фанковые настройки.
Bottom Line: Я нахожу CHM абсолютно непригодным для использования. Но с WinHelp, который больше не является вариантом, интересно, какие альтернативы есть, особенно когда дело доходит до интеграции с моим приложением (т.е. Для WinHelp и CHM есть функции, которые позволяют вам напрямую перейти к теме)?
PDF имеет недостаток в требовании Adobe Reader (или одного из более легких, который не многие используют). Я мог бы жить с этим наблюдением, поскольку сейчас это стандарт, но можете ли вы надежно сказать, чтобы перейти к заданной странице/якорю?
HTML файлы кажутся лучшим выбором, тогда вам просто нужно иметь дело с разными браузерами (CSS и прочее).
Изменить: Я ищу, чтобы создать свои собственные файлы справки. Поскольку я являюсь поклонником философии "Нет установки, просто извлечения и запуска", у меня была эта проблема много раз в прошлом, потому что многие из моих пользователей запускают ее из сети, что вызывает именно эту проблему.
Итак, я ищу более надежный и надежный способ предоставления помощи моим пользователям без необходимости кода другой справочной системы для каждого приложения, которое я делаю.
CHM - действительно хороший формат, но это свойство безопасности делает его непригодным для использования, поскольку система справки должна предоставлять помощь пользователю, а не создавать еще больше проблем.