Pergunta

Estou tentando obter um arquivo CHM para abrir para um tópico específico usando C#.

Eu tentei usar

Help.ShowHelp(this, path, HelpNavigator.Topic, "TopicTitle");

Mas não encontra a página. Não devo estar digitando o título de tópico corretamente. Existe uma maneira de recuperar programaticamente todos os tópicos de um arquivo CHM para que eu possa ver o que eles são?

Foi útil?

Solução

Não, a função API HTMLHELP é muito primitiva para apoiar tópicos de enumeração. Você pode usar o gerenciador de arquivos 7-ZIP para procurar dentro do arquivo .chm. Clique com o botão direito do mouse no arquivo e escolha "Abrir dentro". Ou use a ferramenta de criação de ajuda que foi usada.

Outras dicas

Se você abrir um arquivo CHM e clicar com o botão direito do mouse em uma página de ajuda, poderá escolher o comando Properties.
No meio da página de propriedades, há uma propriedade chamada: endereço (URL).
O final do URL contém a sequência de tópicos usada para abrir o arquivo de ajuda na página correta.

Aqui está um exemplo: MK: @msitstore: C: Program%20Files sisulizer%202010 sisulizer.chm ::/outputfiles.htm

Se o URL for muito longo para ver o tópico no final, você poderá selecionar o endereço com o mouse e rolar até o final.

Aqui está uma captura de tela.

enter image description here

Você também pode usar o seguinte, onde path é caminho para o arquivo CHM:

using System.Windows.Forms;

Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title");

Não tenho certeza de como recuperar programaticamente tópicos do CHM. Mas mudei o código de uma linha dessa maneira e funcionou.

Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top