如何从 chm 文件打开特定主题?

How to open specific topic from a chm file?

我已经从 chm 处理器软件创建了 chm 文件。通过单击特定主题的属性,我得到了 htm link

htm link : mk:@MSITStore:D:\my.chm::/start.htm#_Toc417986991

但是当我尝试从我的 C# 应用程序打开时出现错误

c#代码:

System.Windows.Forms.Help.ShowHelp(null, @"D:\my.chm", @"mk:@MSITStore:D:\my.chm::/start.htm#_Toc417986991");

当我运行我的代码并试图打开它时出现错误

"This program cannot display the webpage"

请帮我找到这个问题的解决方案

请在您的表单中添加一个 HelpProvider 并尝试类似以下代码的操作:

private const string sHTMLHelpFileName_ShowWithNavigationPane = "CHM-example_ShowWithNavigationPane.chm";    
private void btnHelpTopic2_Click(object sender, EventArgs e)
{
helpProvider1.HelpNamespace = Application.StartupPath + @"\" + sHTMLHelpFileName_ShowWithNavigationPane;
Help.ShowHelp(this, helpProvider1.HelpNamespace, @"start.htm");
}

帮助 CHM 帮助文件已添加到项目的子文件夹中,例如\帮助。 对于下载,我提供了一个 C# VS2008 Project,包括上面的代码和具有不同帮助查看器的帮助文件 windows(不同的 CHM 文件仅用于展示案例)。

请将#_Toc417986991 视为由 CHM 处理器软件生成的内部书签。