Для того, чтобы в Windows открыть chm-файл сразу на определённой странице (через ярлык, либо программно - это не имеет значения), нужно сделать следующее:
Давайте рассмотрим эти действия на конкретном примере - откроем справочную систему AutoCAD 2009 на определённой, нужной нам странице.
Сначала вручную откроем chm-файл на той странице, которая нам нужна. Затем из контекстного меню этой страницы (именно страницы, а не элемента древовидной структуры, представленной на вкладке "Содержание" слева) следует выбрать пункт "Свойства".
В открывшемся диалоговом окне щёлкаем правой кнопкой мыши на значении поля "Адрес:" и из контекстного меню выбираем пункт "Выделить всё".
Повторно щёлкаем правой кнопкой мыши на значении поля "Адрес:", но в этот раз из контекстного меню выбираем пункт "Копировать".
Скопированное нами значение - это параметр, который необходимо передать программе hh.exe для того, чтобы произошло открытие chm-файла на странице, адрес которой был нами скопирован. Т.о. в консоли Windows вызов будет выглядеть так:
hh.exe mk:@MSITStore:C:\AdminCAD\Common\Docs\Help%202009%20Rus\acad172.chm::/1acr.html
Обратите внимание на то, что параметр я указывал без кавычек, хотя при наличии кавычек всё будет так же корректно работать. Дело в том, что все символы пробелов автоматически заменяются последовательностью символов "%20" и потребность в кавычках исчезает. Например, если chm-файл будет находиться в каталоге "C:\Documents and Settings\Developer\Рабочий стол\Help 2009 Rus", то ссылка на нужную мне страницу будет такой: mk:@MSITStore:C:\Documents%20and%20Settings\Developer\Рабочий%20стол\Help%202009%20Rus\acad172.chm::/1acr.html. Как видите - все пробелы заменены на "%20". Т.о. ссылка на конкретную страницу справочной системы строится по правилу:
hh.exe mk:@MSITStore:<Указание полного пути chm-файлу, с заменой всех пробелов на "%20">::<Указание относительного пути расположения html-страницы, входящей в состав chm-файла>
Обратите внимание на то, что путь, указывающий на html-страницу содержит прямые , а не обратные слеши.
Примечание
- Получить ссылку на страницу, которую нужно открывать.
- Запустить программу hh.exe (см. примечание), передав ей в качестве параметра ссылку на открываемую страницу.
Давайте рассмотрим эти действия на конкретном примере - откроем справочную систему AutoCAD 2009 на определённой, нужной нам странице.
Сначала вручную откроем chm-файл на той странице, которая нам нужна. Затем из контекстного меню этой страницы (именно страницы, а не элемента древовидной структуры, представленной на вкладке "Содержание" слева) следует выбрать пункт "Свойства".
В открывшемся диалоговом окне щёлкаем правой кнопкой мыши на значении поля "Адрес:" и из контекстного меню выбираем пункт "Выделить всё".
Повторно щёлкаем правой кнопкой мыши на значении поля "Адрес:", но в этот раз из контекстного меню выбираем пункт "Копировать".
Скопированное нами значение - это параметр, который необходимо передать программе hh.exe для того, чтобы произошло открытие chm-файла на странице, адрес которой был нами скопирован. Т.о. в консоли Windows вызов будет выглядеть так:
hh.exe mk:@MSITStore:C:\AdminCAD\Common\Docs\Help%202009%20Rus\acad172.chm::/1acr.html
Обратите внимание на то, что параметр я указывал без кавычек, хотя при наличии кавычек всё будет так же корректно работать. Дело в том, что все символы пробелов автоматически заменяются последовательностью символов "%20" и потребность в кавычках исчезает. Например, если chm-файл будет находиться в каталоге "C:\Documents and Settings\Developer\Рабочий стол\Help 2009 Rus", то ссылка на нужную мне страницу будет такой: mk:@MSITStore:C:\Documents%20and%20Settings\Developer\Рабочий%20стол\Help%202009%20Rus\acad172.chm::/1acr.html. Как видите - все пробелы заменены на "%20". Т.о. ссылка на конкретную страницу справочной системы строится по правилу:
hh.exe mk:@MSITStore:<Указание полного пути chm-файлу, с заменой всех пробелов на "%20">::<Указание относительного пути расположения html-страницы, входящей в состав chm-файла>
Обратите внимание на то, что путь, указывающий на html-страницу содержит прямые , а не обратные слеши.
Примечание
hh.exe – утилита операционной системы Microsoft Windows, которая вызывается при нажатии клавиши помощи (F1). Процесс не является критическим и его завершение не влияет на стабильность работы системы.
Программно (на C#) открытие chm-файла на нужной странице можно выполнить так:
1: static void Main(string[] args) {
2: ProcessStartInfo info = new ProcessStartInfo("hh.exe",
3: @"mk:@MSITStore:C:\AdminCAD\Common\Docs\Help%202009%20Rus\acad172.chm::/1acr.html");
4: Process proc = new Process();
5: proc.StartInfo = info;
6: proc.Start();
7: }
1 комментарий:
Еще как вариант можно использовать метод Help.ShowHelp.
Например, если у страниц в справке есть ключевые слова (keywords), то открыть страницу можно так
System.Windows.Forms.Help.ShowHelp(null, helpFile, keyword + ".html");
где - helpFile - полный путь к файлу
keyword- то самое ключевое слово
Отправить комментарий