На данном этапе я не установил среду разработки LUA на мою машину с Windows10 версии 1903. Поэтому я описываю ответ на примере PowerShell с некоторыми подсказками для LUA. Преобразование не должно быть проблемой.
Как я помнил и упоминал ранее KeyHH.exe - это программа, которая дополняет HTML-справку. Его можно использовать в дополнение или в качестве полной замены для HH.EXE. KeyHH предоставляет все функциональные возможности HH.EXE, предлагает решения для некоторых известных ошибок в справке HTML, а также предоставляет дополнительные функциональные возможности.
Но, обратите внимание, это действительно было очень давно (около 12 лет)) и, возможно, вы должны быть предупреждены о текущей операционной системе Windows. Но я был удивлен, что он работает на моей машине.
Старый сайт keyworks.net больше не доступен. Мы, пенсионеры Microsoft Help MVP, уже несколько лет назад скопировали содержимое в http://keyworks.helpmvp.com.
Так что, тем не менее, попробуйте. Я бы порекомендовал сначала выполнить приведенные ниже шаги, а затем адаптировать его для своих нужд в LUA. Как я могу видеть без опыта
- Скачать Keyhh.zip
- Разархивировать KeyHH.exe во временную папку, например
D:/_working
- Cutи вставьте KeyHH.exe в
C:/Windows
, где также находится hh.exe (с правами администратора) - Загрузите образец CHM-файла со своего сайта во временную папку, например
D:/_working
. Чтобы открыть этот файл CHM, щелкните правой кнопкой мыши сохраненный файл, выберите «Свойства», а затем нажмите «Разблокировать». Это только для контрольного примера (см. Ниже).
Выполните следующие команды hh.exe с помощью PowerShell:
hh.exe D:/_working/CHM-example.chm
hh.exe D:/_working/CHM-example.chm::/Garden/flowers.htm
hh.exe D:/_working/CHM-example.chm::/Garden/tree.htm
hh.exe -mapid 10010 D:/_working/CHM-example.chm
Вы знаете, что это приводит к четырем окнам справки:
Вы можете использовать KeyHH для создания отдельного окна справки HTML. Это окно остается открытым, пока пользователь не закроет его. Как только это окно создано, вы можете открывать новые темы в нем, не создавая нового окна, так же, как вы можете это сделать с помощью WinHelp. Вы можете использовать эту функцию из окна справки HTML, из программы или из файла WinHelp.
Вы создаете уникальное окно KeyHH, указывая тире (-), за которым следует идентификационное имя и имя файла CHM. ,Затем KeyHH проверит, открыто ли окно справки HTML, в котором используется это идентифицирующее имя. Если это так, окно справки HTML будет просто обновлено новым файлом или темой CHM. Если он не открыт, KeyHH создаст новое окно справки HTML.
Вы можете использовать любой идентификатор, который хотите, если первый символ не начинается с символа фунта (#).
Из приведенного выше примера, чтобы открыть тему под названием flowers.htm
в файле CHM-example.chm
, вы должны использовать эту команду:
KeyHH.exe -MyID D:/_working/CHM-example.chm::/Garden/flowers.htm
Предположим, что вы хотите открыть другую тему под названием tree.htm
youзатем будет использовать эту команду:
KeyHH.exe -MyID D:/_working/CHM-example.chm::/Garden/tree.htm
или другую тему по mapid
KeyHH.exe -MyID -#mapid 10010 D:/_working/CHM-example.chm
Все эти команды приводят только к одному окну помощи:
Обратите внимание, что было предупреждение Не используйте имена файлов с дефисами (например, new-topic.htm) при работе с KeyHH. . Возможно, вам придется переименовать ваши файлы.
Я думаю, вам нужно всего лишь изменить несколько строк кода:
local KeyHHParam = " -MyID "
local HelpFile = strDir.."\\"..strName.." "..strVersion..".chm"
local topicpath = "options"
local helpexecutable = "C:\\windows\\KeyHH.exe"
local helpparms = "::/"..string.lower(string.gsub(topicpath..".htm", "")
local bOK, intErrorCode, strErrortext =
fhShellExecute(helpexecutable, KeyHHParam..HelpFile..helpparms)