Есть ли библиотека / api для чтения содержимого файла справки .hlp?

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

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

Кто-нибудь теперь какие-нибудь указатели или примеры того, как это сделать?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
169
2

Ответы 2

Утилита winhelpcgi содержит код библиотеки, который может читать файлы .hlp. Источник здесь: ссылка на сайт

Я не использовал его, поэтому не могу поручиться за его использование.

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

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

Однако есть более важный вопрос: действительно ли имеет смысл открывать всю справочную тему (даже если короткую), когда пользователь просто наводит курсор на пункт или кнопку меню? Для меня это не так, и я провел годы в группе дизайна пользовательского интерфейса в Bell Labs. Это А) просто слишком много информации и Б) будет визуально отвлекать (и, следовательно, невероятно раздражать) опытных пользователей. Принятая практика здесь - всплывающее окно с подсказкой с очень коротким (1-4 слова) описателем кнопки («Открыть» или «Открыть файл»).

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

Во-первых, подумайте о наличии «режима курсора справки», в котором курсор использует значок справки (стрелка со знаком вопроса). Пользователь получает к нему доступ с помощью кнопки «Справка» на панели кнопок. В режиме курсора справки пользователь щелкает любой элемент, чтобы перейти к разделу справки по этому элементу. Я немного прохладно отношусь к этому подходу, так как он модальный, но я, конечно, видел, как это было сделано.

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

Самое главное: прежде чем выполнять всю работу, необходимую для реализации вашего текущего плана, будьте Конечно, это правильный план!

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