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

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

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

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

Ответы [ 2 ]

1 голос
/ 23 января 2009

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

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

0 голосов
/ 23 января 2009

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

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

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

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

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

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

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

...