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
.NET APIは、名前空間でHelp
クラスを提供します。System.Windows.Forms
いくつかの例:
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")
プロセスを実行します。動詞から始めて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
WinXP SP3(SP2?)以降、ファイルはOSによって厳しく制限されていることに注意してください。.chm
ファイルは合理的なセキュリティリスクと見なされるため、ネットワークやリモートの場所から直接開くことはできません。それに応じてコーディングする必要があり、それらを開こうとすると例外が発生することが予想されます。
ボタンクリックイベントでこのコードを書く
Dim RetVal
RetVal = Shell("hh.exe " & App.HelpFile, vbNormalFocus)
ここで、hh.exeは任意の名前です。App.Helpfileはchmファイル名です。
HH.EXEを使用して、指定したトピックを表示することもできます。
サンプルコード[topicid]
では、実際のトピックIDに置き換え[yourhelpfile.chm]
、.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)