2013-04-09 2 views
1

У меня есть проект C#, содержащий многочисленные кнопки справки. Когда одна из этих кнопок нажата, она открывает файл справки (Help.chm) на соответствующую страницу. Вот код, чтобы сделать это для одной из страниц:Измените страницу в файле chm через командную строку

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "hh.exe"; 
startInfo.Arguments = "Help.chm::/html/97198ffa-adb2-4897-b5e4-5bba54252900.htm";//page id 
Process.Start(startInfo); 

Это прекрасно работает, но теперь, когда пользователь нажимает другую кнопку справки (или даже тот же один) новый файл справки открывает оставляя потенциально многие избыточные Открываются файлы chm. Если мой файл справки уже открыт, есть ли способ изменить страницу вместо этого? Если есть способ сделать это через командную строку, это было бы хорошим местом для начала.

+1

Могу ли я спросить, почему вы не используете метод .NET Framework ['Help.ShowHelp'] (http://msdn.microsoft.com/en-us/library/s8a73aa6.aspx)? – Helen

ответ

3

Как упоминалось ранее Хелен, я действительно рекомендую использовать метод Help.ShowHelp.

private void btnHelpTopic1_Click(object sender, EventArgs e) 
    { 
     // sHTMLHelpFileName_ShowWithNavigationPane = "CHM-example_ShowWithNavigationPane.chm" 
     // This is a HelpViewer Window with navigation pane for show case only 
     // created with Microsoft HTMLHelp Workshop 
     helpProvider1.HelpNamespace = Application.StartupPath + @"\" + sHTMLHelpFileName_ShowWithNavigationPane; 
     Help.ShowHelp(this, helpProvider1.HelpNamespace, @"/Garden/tree.htm"); 
    } 

    private void btnHelpTopic2_Click(object sender, EventArgs e) 
    { 
     helpProvider1.HelpNamespace = Application.StartupPath + @"\" + sHTMLHelpFileName_ShowWithNavigationPane; 
     Help.ShowHelp(this, helpProvider1.HelpNamespace, @"/Garden/flowers.htm"); 
    } 

Пожалуйста, взгляните на код и небольшой графический интерфейс (привязанный). Темы обновляются после нажатия кнопки «Пользователи» (например, Help Topic1). Обратите внимание, что для файла справки, созданного с помощью Microsoft HTMLHelp Workshop, может потребоваться параметр автоматической синхронизации.

C# code, GUI and opened help file.

Для загрузки я обеспечиваю C# VS2008 Project включая приведенный выше код и файлы справки с различными окнами просмотра справки (различные файлы CHM для шоу случае только).

Смежные вопросы