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

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

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

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

2 ответа

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

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

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

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

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

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

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

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

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

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