Вместо вызова вызова hh.exe, который сейчас работает некорректно, нужно сделать просмотр chm во внешних просмотрщиках. Решение для 1.0.12 было сделано, по сути, осталось перенести его в 2.0. В первую очередь решение ориентировано на запуск справки Консультанта.
Внешний просмотрщик chm в eterhack уже работает. $ wine start cons.chm запускает один из линуксовых просмотрщиков. Проблема с Консультантом в том, что он вызывает справку с помощью WinAPI - непосредственно функцией HtmlHelp(). Для 1.0.12 Илья делал хак, вызывающий ShellExecute и прерывающий запуск справки. В таком виде восстановить функционал не сложно, но есть проблемы: появляется сообщение Консультанта об ошибке справки (логично, потому что мы возвращаем ошибку), а внешний просмотрщик запускается в двух экземплярах (видимо, Консультант делает две попытки, прежде чем сообщает об ошибке, а хак исправно отрабатывает оба раза). Как вариант решения_для_Консультанта - разрешить загрузку HtmlHelp и сделать дополнительный хак, отправляющий хелпу сообщение о закрытии при дальнейшей загрузке chm-файла.
Доделал хак, заточенный на Консультант. При появляении других программ, использующих такой механизм вызова справки, можно будет расширить действие хака, убрав проверку на "консультантовость". Пока порядок такой: - при открытии справки через HtmlHelp запускается внешний просмотрщик, при этом ошибка программе не возвращается. Это приводит к тому, что запустится вайновский hh.exe и внешний просмотрщик в качестве дублирующей программы; - хак для консультанта закрывает окно hh.exe при попытке навигации на cons.chm, что позволяет избирательно применять хак к Консультанту без ложных срабатываний; окно вайновской справки появляется на доли секунды и исчезает, вместе с тем запускается внешний просмотрщик, выглядит вполне нормально. Если для Консультанта решение будет нормально работать, действие хака можно будет расширить на другие приложения.
Справка отображается,но в ней не работают ссылки. eterhack bottle cons/demo