Введение
Формат файла Microsoft WinHelp — это проприетарный формат файлов онлайн-справки, которые могут отображаться в браузере Microsoft Help winhelp.exe или winhlp32.exe. Формат файла основан на Rich Text Format (RTF). Он оставался популярной платформой справки от Windows 3.0 до Windows XP. WinHelp был удален в Windows Vista, предположительно, чтобы отговорить разработчиков программного обеспечения от использования устаревшего формата и стимулировать переход на новые форматы справки. Поддержка файлов WinHelp была окончательно прекращена в Windows 10.
Microsoft WinHelp is a proprietary format for online help files that can be displayed by the Microsoft Help browser winhelp. exe or winhlp32. exe. The file format is based on Rich Text Format (RTF). It remained a popular Help platform from Windows 3.0 through Windows XP. WinHelp was removed in Windows Vista purportedly to discourage software developers from using the obsolete format and encourage use of newer help formats. Support for WinHelp files would eventually be removed entirely in Windows 10.
История
1990 – WinHelp 1.0 поставлялась с Windows 3.0. 1995 – WinHelp 4.0 поставлялась с Windows 95 / Windows NT. 2006 – Microsoft объявила о своих намерениях постепенно отказаться от WinHelp как от поддерживаемой платформы. WinHelp не входит в состав Windows Vista по умолчанию. Файлы WinHelp бывают 16- и 32-битного типа. Vista обрабатывает эти типы файлов по-разному. При запуске приложения, использующего 32-битный формат hlp, Windows предупреждает, что данный формат больше не поддерживается. Загружаемый просмотрщик для 32-битных файлов HLP доступен в Центре загрузки Microsoft. 16-битные файлы WinHelp продолжают отображаться в Windows Vista (только 32-битной версии) без загрузки просмотрщика. 9 января 2009 года – Microsoft объявила о доступности программы Windows Help (WinHlp32.exe) для Windows Server 2008 в Центре загрузки Microsoft. 14 октября 2009 года – Microsoft объявила о доступности программы Windows Help (WinHlp32.exe) для Windows 7 и Windows Server 2008 R2 в Центре загрузки Microsoft. 26 октября 2012 года – Microsoft объявила о доступности программы Windows Help (WinHlp32.exe) для Windows 8 в Центре загрузки Microsoft. 5 ноября 2013 года – Microsoft объявила о доступности программы Windows Help (WinHlp32.exe) для Windows 8.1 в Центре загрузки Microsoft. 15 июля 2015 года – Microsoft полностью удалила Windows Help из Windows 10. При попытке открыть файл hlp пользователи перенаправляются на страницу справки, где указано, что эта функция была удалена.
Формат файла
Файл WinHelp имеет суффикс ".hlp". Он может сопровождаться необязательным файлом оглавления (.cnt), если разработчик справки его создал. Когда Windows открывает файл WinHelp, она создает файл gid в той же директории или в "%LOCALAPPDATA%\Help", содержащий информацию о файле .hlp, такую как размер и положение окна. Если пользователь нажимает вкладку "Найти" и включает индексацию ключевых слов, Windows создает индексный файл с расширением fts (полнотекстовый поиск). Аннотации и закладки для каждого файла справки Windows имеют расширения ".ann" и ".bmk" соответственно. Ряд программных средств может декомпилировать файл WinHelp в его исходные документы: HPJ, CNT, RTF, BMP и SHG. Файл HPJ — это файл проекта, который создается и редактируется в Help Workshop (или в стороннем инструменте для создания справки). HPJ содержит информацию о том, какие RTF-файлы компилировать в справку, MAP-ID и псевдонимы, обеспечивающие ссылки от вызывающего приложения к файлу справки, а также внешний вид файла справки (размер окна, кнопки по умолчанию, цветовые схемы и т. д.). Файл CNT содержит оглавление для файла справки. Файл SHG — это графический файл "SHED", который по сути создает карту изображений для запросов справки, связанных с графическим файлом (например, BMP). Ряд инструментов может читать и исследовать эти файлы (например, Help to RTF и winhelpcgi). +Сводка по файлам WinHelp hlp Описание файла hpj Файл проекта (обычный текст?); содержит список всех RTF-файлов для компиляции в файл .hlp и некоторую дополнительную информацию cnt Файл оглавления (TOC) rtf Фактическое текстовое содержимое в формате Rich Text Format bmp dib wmf shg Файлы изображений в различных форматах: bmp или dib, wmf shg fts ftg Полнотекстовый поиск; используется для поиска по тексту справочных документов ann Файл с аннотациями (обычный текст?) bmk Файл с закладками (обычный текст?)
Исходные файлы и компиляция
Исходные файлы, необходимые для компиляции файла hlp, состоят из одного или нескольких документов в формате Rich Text и файла проекта справки с расширением hpj, а также любых файлов изображений (.bmp, .wmf или .shg), используемых в файле справки. Также может быть создан дополнительный файл содержания с расширением cnt для использования с файлом hlp. В файлах rtf темы разделяются разрывами страниц. Каждая тема содержит ряд сносок, содержащих информацию для компилятора справки: # сноски содержат идентификатор темы (используется для создания ссылок на эту тему). $ сноски содержат название темы, отображаемое в оглавлении, индексе и других местах. K сноски содержат ключевые слова для индекса. Сноски содержат ключевые слова "См. также". * сноски содержат теги сборки. + сноски содержат информацию о последовательности просмотра. ! сноски содержат макросы записи темы. Требуется только сноска #. Все остальные – необязательные. Текст в каждой теме может содержать ограниченное форматирование, включая полужирный текст, курсив и цвета. Верхние и нижние индексы не допускаются. Переходы между темами в одном файле справки обычно отображаются в исходном документе в виде текста с двойным подчеркиванием (зеленым по умолчанию, хотя это можно изменить), за которым следует идентификатор темы в скрытом тексте. Всплывающие ссылки отображаются в исходном документе в виде текста с одинарным подчеркиванием (также зеленым по умолчанию), за которым следует идентификатор темы в скрытом тексте. (В файле hlp переходы отображаются как зеленый текст с одинарным подчеркиванием, а всплывающие окна – как зеленый текст с пунктирным подчеркиванием.) Изображения можно добавлять с помощью кодов, таких как {bmc image.bmp}. Поддерживаемые форматы изображений включают bmp, wmf и shg (используются для карт изображений, которые могут содержать переходы или всплывающие окна, активируемые при нажатии на определенные части изображения). После создания исходных файлов файл справки можно скомпилировать с помощью компилятора WinHelp, такого как HCW.exe, или с помощью коммерческой программы, такой как RoboHelp или HelpBreeze, большинство из которых (включая упомянутые здесь) также используют HCW.exe в качестве базового компилятора.
# footnotes contain the topic ID (used to create links to that topic). $ footnotes contain the topic name as it displays in the table of contents, index, and other locations. K footnotes contain keywords for the index. A footnotes contain See Also keywords. * footnotes contain build tags. + footnotes contain browse sequence information. ! footnotes contain topic entry macros. Only the # footnote is required. All others are optional. Text in each topic can contain limited formatting, including bold text, italics, and colors. Superscript and subscript are not allowed. Jumps between topics in the same Help file usually appear in the source document as double underlined text (green by default, though this can be overridden) followed by a topic ID in hidden text. Popup links appear in the source document as text with a single underline (also green by default) followed by a topic ID in hidden text. (In the hlp file, the jumps show up as green text with a single underline, and popups show up as green text with a dotted underline.) Images can be added using codes such as {bmc image. bmp}. Supported image formats include bmp, wmf, and shg (used for image maps, which can contain jumps or popups that are triggered by clicking on specific parts of the image). After the source files have been created, the help file can be compiled using a WinHelp compiler such as HCW. exe or by using a commercial software program such as RoboHelp or HelpBreeze, most of which (included the two cited here) also use hcw. exe as the backend compiler.
Появление и функции WinHelp
В зависимости от способа запуска и настроек, выбранных автором справки, файл WinHelp открывается либо на тему по умолчанию, либо на оглавление, либо на индекс. Тема в файле WinHelp открывается в отдельном окне, с размером и начальным положением, которые может задать автор справки. Пользователи могут изменять размер или перемещать окно. Автор справки может контролировать, сохраняются ли настройки пользователя между сеансами или файл всегда открывается в размере и положении по умолчанию. Когда тема открыта, в верхней части окна справки в строке заголовка отображается заголовок темы. Ниже располагается строка меню (Файл, Редактировать, Закладка, Параметры и Справка), управляющая различными аспектами файла. Обычно под меню появляется строка кнопок. Автор справки определяет, какие кнопки, если таковые имеются, будут отображаться. Типичные кнопки включают «Содержание», «Индекс», «Назад» и «Печать», а также кнопки «<» и «>» для навигации по файлу. Авторы справки также могут создавать пользовательские кнопки для перехода к конкретным темам или выполнения других действий. Под кнопками находится основная текстовая область окна. Обычно текст начинается с заголовка, часто выделенного жирным шрифтом или более крупным размером, чем остальной текст. Этот заголовок иногда может находиться в неподвижной области – области окна, которая не прокручивается вверх или вниз с помощью полосы прокрутки. Неподвижные области можно использовать только в начале темы. Автор справки может контролировать размер и цвет фона неподвижной области. Авторы справки также могут контролировать цвет фона основной текстовой области, где отображается фактический текст темы. Этот текст может быть отформатирован и расположен различными способами. В тексте переходы отображаются зеленым цветом с одним подчеркиванием. Одиночный щелчок по переходу открывает другую тему. Некоторые переходы могут открывать дополнительные окна справки для отображения информации. Всплывающие подсказки отображаются в тексте зеленым цветом с пунктирным подчеркиванием. Одиночный щелчок по всплывающей подсказке открывает небольшое окно без меню, кнопок или полос прокрутки, размер которого соответствует тексту. Часто всплывающие подсказки содержат краткие определения ключевых терминов или другую дополнительную информацию к основному тексту. Всплывающая подсказка автоматически исчезает при следующем щелчке или нажатии клавиши. Многие, хотя и не все, темы справки содержат переходы «См. также» в конце текста. В зависимости от предпочтений автора справки, эта функция может быть представлена простым списком переходов под заголовком «См. также» или небольшой кнопкой, которая при нажатии открывает диалоговое окно со списком всех соответствующих тем. Щелчок по имени темы в этом диалоговом окне, а затем по кнопке «Отобразить» открывает эту тему. Большинство файлов справки также содержат оглавление и индекс, помогающие пользователям находить информацию. Они отображаются в отдельном окне с вкладками. Щелчок по вкладке «Содержание» открывает оглавление, в котором пользователи могут щелкать по заголовкам для просмотра тем. Часто заголовки отмечены значками, похожими на маленькие книги, а темы – на страницы. Двойной щелчок по теме (или щелчок по теме, а затем по кнопке «Отобразить») открывает эту тему. Щелчок по вкладке «Индекс» открывает индекс, который содержит поле ввода и алфавитный список ключевых слов. Ввод в поле ввода автоматически прокручивает список ключевых слов к ближайшему совпадению. Двойной щелчок по ключевому слову (или щелчок по ключевому слову, а затем по кнопке «Отобразить») отображает тему, связанную с этим ключевым словом (если она одна) или открывает список всех связанных тем. Индекс важен для помощи пользователям в поиске информации. Иногда в файлах справки также есть вкладка «Найти», которая позволяет пользователю искать любое слово, используемое в тексте файла, а не только ключевые слова. WinHelp также поддерживает функцию, известную как контекстная справка. Контекстная справка – это помощь, соответствующая текущему местоположению пользователя в программном приложении и выполняемой им задаче. Важной функцией безопасности является возможность включения DLL-файла, содержащего пользовательский код, и связывания его с темами WinHelp. Фактически, это делает HLP-файлы эквивалентными исполняемым файлам.
Конец поддержки
На конференции WritersUA 2006 года Microsoft объявила о своих намерениях постепенно отказаться от WinHelp как от поддерживаемой платформы. Тед Дворкин (партнёр-директор направления WinHelp Experience) заявил: «WinHelp не соответствует стандартам кодирования, установленным для Vista. Эти стандарты включают в себя безопасность, надёжность и производительность». Он добавил, что WinHelp спроектирован таким образом, что «нам пришлось бы переписывать его с нуля, чтобы соответствовать стандартам кодирования Vista. И такой подход нецелесообразен, учитывая, что в Vista уже есть две другие системы справки». Обновлённое лицензионное соглашение запрещает разработчикам приложений распространять библиотеки WinHelp вместе со своими установщиками. Это означает, что справочные файлы WinHelp для устаревших приложений нельзя прочитать на новой установке Windows Vista (или более поздней версии). Для их чтения конечному пользователю необходимо скачать 32-разрядный просмотрщик WinHelp с веб-сайта Microsoft и установить его вручную. В Windows 10 и более поздних версиях Microsoft не предоставляет просмотрщик WinHelp для операционной системы. Последняя версия Windows, в которой можно было открывать и читать файлы WinHelp с помощью официального компонента, загружаемого Microsoft, – Windows 8.1. Версия winhlp32 с открытым исходным кодом от Wine также работает в Windows 10 и включена в состав WineVDM. Кроме того, в Windows 10 WinHelp работает с файлом winhlp32.exe из более ранних версий Windows.
Другие форматы файлов документации
Хотя документацию можно вести исключительно в формате, специфичном для конкретного поставщика, таком как WinHelp, чаще всего требуется одновременная публикация документации в нескольких форматах представления: Microsoft Compiled HTML Help (CHM), WinHelp, HTML-страницы, Java Help, PDF и т.д. Поддерживать каждый формат по отдельности было бы очень дорого и чревато ошибками. Поэтому авторы часто ведут документацию в отраслевом стандартном, независимом от поставщика формате редактирования, таком как DocBook или FrameMaker, который позволяет генерировать несколько различных форматов представления (включая WinHelp). Различные файлы представления, полученные таким образом (с помощью WinHelp или других инструментов), содержат согласованный контент, поскольку они были сгенерированы из одного и того же источника.