C#を使用して特定のトピックを開くためにCHMファイルを取得しようとしています。
使ってみました
Help.ShowHelp(this, path, HelpNavigator.Topic, "TopicTitle");
しかし、ページが見つかりません。トピックのタイトルを正しく入力してはいけません。CHMファイルからすべてのトピックをプログラムで取得して、それらが何であるかを確認できる方法はありますか?
いいえ、HtmlHelp API関数は非常に原始的すぎて、トピックの列挙をサポートできません。7-zipファイルマネージャーを使用して、.chmファイルの内部を調べることができます。ファイルを右クリックして、[内部を開く]を選択します。または、使用されたヘルプオーサリングツールを使用します。
CHMファイルを開き、ヘルプページを右クリックすると、[プロパティ]コマンドを選択できます。
[プロパティ]ページの中央に、アドレス(URL)というプロパティがあります。
URLの末尾には、ヘルプファイルを正しいページに開くために使用されるトピック文字列が含まれています。
次に例を示します。mk:@MSITStore:C:\ Program%20Files \ Sisulizer%202010 \ Sisulizer.chm :: / OutputFiles.htm
URLが長すぎて最後のトピックが表示されない場合は、マウスでアドレスを選択して最後までスクロールできます。
これがスクリーンショットです。
次を使用することもできます。ここで、path
はchmファイルへのパスです。
using System.Windows.Forms;
Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title");
CHMからプログラムでトピックを取得する方法がわかりません。しかし、私はこのように1行のコードを変更し、それは機能しました。
Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle");