2013-04-09 54 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/zh-cn/library/s8a73aa6.aspx)方法? – Helen 2013-04-10 06:45:26

回答

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"); 
    } 

請看看代碼和小GUI(快照附加)。在用戶按鈕點擊後(例如幫助主題1),主題被刷新。請注意,使用Microsoft HTMLHelp Workshop創建的幫助文件可能需要自動同步參數。

C# code, GUI and opened help file.

對於下載我提供了一個C#VS2008 Project包括上面的代碼,並與不同的幫助查看器窗口中的幫助文件(用於顯示情況下,只有不同的CHM文件)。