Elencare tutti gli argomenti da un file CHM
Domanda
Sto cercando di ottenere un file CHM per aprire ad un argomento specifico utilizzando C #.
Ho provato con
Help.ShowHelp(this, path, HelpNavigator.Topic, "TopicTitle");
, ma non trova la pagina. Non devo essere digitando il titolo argomento in modo corretto. C'è un modo che io possa recuperare programatically tutti gli argomenti da un file CHM in modo che posso vedere che cosa sono?
Soluzione
No, la funzione HtmlHelp API è troppo primitiva per sostenere argomenti enumerazione. È possibile utilizzare il file manager di 7-zip per guardare dentro il file CHM. Fare clic destro sul file e scegliere "Open Inside". O utilizzare lo strumento di authoring di aiuto che è stato utilizzato.
Altri suggerimenti
Se si apre un file CHM, e fare clic destro su una pagina di aiuto, è possibile scegliere il comando Proprietà.
Al centro della pagina delle proprietà v'è una proprietà chiamata:. Indirizzo (URL)
La fine della URL contiene la stringa argomento utilizzato per aprire il file di aiuto alla pagina corretta.
Ecco un esempio: mk: @MSITStore: C: \ Program% 20Files \ Sisulizer% 202010 \ Sisulizer.chm :: / OutputFiles.htm
Se l'URL è troppo lungo per vedere l'argomento alla fine, è possibile selezionare l'indirizzo con il mouse e scorrere fino alla fine.
Ecco un colpo di schermo.
È inoltre possibile utilizzare il seguente, dove è path
percorso del file chm:
using System.Windows.Forms;
Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title");
Non sono sicuro su come recuperare a livello di codice argomenti da CHM. Ma ho cambiato il codice di una riga in questo modo e ha funzionato.
Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle");