单击按钮以在VB.NET中显示.CHM帮助文件

单击按钮以在VB.NET中显示.CHM帮助文件,vb.net,chm,helpfile,Vb.net,Chm,Helpfile,我想在VB.NET中单击按钮时显示.CHM帮助文件。有人能告诉我怎么做吗 Private Sub cmdHelp_Click(ByVal sender As System.Objects, Byval e As System.EventArgs)Handles cmdHelp.Click 'Please help provide some code End Sub 做一个过程。从动词open开始做动作: Module Module1 Sub Main() Dim

我想在VB.NET中单击按钮时显示.CHM帮助文件。有人能告诉我怎么做吗

Private Sub cmdHelp_Click(ByVal sender As System.Objects, Byval e As System.EventArgs)Handles cmdHelp.Click
   'Please help provide some code
End Sub

做一个过程。从动词
open
开始做动作:

Module Module1

    Sub Main()
        Dim p As New Process()
        Dim psi As New ProcessStartInfo("path to my CHM file")
        psi.Verb = "open"
        p.StartInfo = psi
        p.Start()

        Console.ReadKey()
    End Sub

End Module

请注意,
.chm
文件从WinXP SP3(SP2?)开始就受到操作系统的严格限制-它们被认为是合理的安全风险,因此您不能直接从网络或远程位置打开它们。您需要相应地编写代码,并且在尝试打开它们时会出现异常。

NET API在
System.Windows.Forms
命名空间中提供
Help
类。一些例子:

Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.TableofContents, Nothing)
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.Index, Nothing)
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.Topic, "Page.html")
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.TopicId, 123)
Help.ShowHelp(ParentForm, "HelpFile.chm", HelpNavigator.Keyword, "Keyword")

在按钮上单击事件写入此代码

Dim RetVal
RetVal = Shell("hh.exe " & App.HelpFile, vbNormalFocus)

其中hh.exe是任意名称App.Helpfile是您的chm文件名

您也可以使用hh.exe显示指定的主题

在示例代码中 用真实的主题id替换
[topicid]
并用.chm文件的完整路径和名称替换
[yourhelpfile.chm]

如果需要返回值

Dim RetVal As Integer = Shell("HH.EXE -mapid [topicid] ms-its:[yourhelpfile.chm]", AppWinStyle.NormalFocus)
否则就这样

Shell("HH.EXE -mapid [topicid] ms-its:[yourhelpfile.chm]", AppWinStyle.NormalFocus)