2009-06-17 6 views
7

Salut, j'ai besoin d'aide contextuelle dans mon application .NET. J'ai le fichier .chm et je suis à la recherche de possibilité de l'ouvrir dans la visionneuse standard et hightlight sujet requis de la table des matières (ou l'entrée de l'index)Comment ouvrir le fichier CHM sur le noeud spécifié TOC (.NET)

Une idée de comment archiver cela?

EDIT:

Peut-être que l'application MS utilisé pour ouvrir le fichier CHM a des paramètres de ligne de commande qui permet archive?

BTW: Où puis-je trouver cette application?

Répondre

3

Vous pouvez regarder dans la classe Help. C'est ce que j'utilise pour afficher de l'aide dans les applications Winforms.

+0

Regardez bien - va le vérifier. En attendant - avez-vous des exemples (liens) comment l'utiliser? – Maciej

+0

Désolé - Je ne suis pas trop paresseux - J'ai manqué des exemples sur une page que vous avez mentionnée. Va le vérifier d'abord – Maciej

6

Je pense que l'une des URL suivantes pourrait fonctionner ou vous diriger vers plus de "hits web" via google. Mais je pense qu'il ya des restrictions aiment parfois: fonctionne peut-être que dans IE, que si CHM dans un endroit de confiance, une URL ne peut fonctionner que sur certaines version de Windows, ....

mk:@MSITStore:C:\test.chm::/testpage.htm 

ms-its:.\test.chm::/html/test.htm 

Semble je n'étais pas pas assez spécifique. Vous devriez pouvoir utiliser ce qui précède pour lancer directement hh.exe depuis votre application et le passer comme URI en tant qu'argument.

En utilisant System.Diagnostics.Process et le lancement hh.exe comme celui-ci

hh.exe mk:@MSITStore:C:\test.chm::/test.htm 

devrait faire ce que vous voulez.

Vérifiez HTMLHelp commandline pour plus d'exemples

+0

Pouvez-vous s'il vous plaît me donner plus d'informations ce que je ferai wietk cette synax? Ouvrez-le via iExplore, exécutez comme nouveau processus de C# ?? Je voulais juste ouvrir l'application Microsoft HTML Help avec l'élément d'aide spécifié mis en évidence et son contenu affiché – Maciej

+0

J'ai fait ma réponse plus spécifique – jitter

+0

+1 parce que cela fonctionne vraiment. Mais j'ai trouvé le post de Jeff comme meilleure approche. Merci – Maciej

3

Merci Jeff J'ai trouvé une solution.

Ci-dessous la méthode faisant cela - peut-être que quelqu'un le trouve utile. Merci pour votre aide!

public static void ShowHelpByKeyword(Control sourceControl, string helpFile, string parameter) { 
    Help.ShowHelp(sourceControl, helpFile, HelpNavigator.KeywordIndex, parameter); 
} 
+0

je le trouve utile. merci pour votre réponse et pour le thème! :) –

Questions connexes