2010-12-03 2 views
0

Je crée un fichier CHM où l'utilisateur peut avoir cela lorsqu'il clique sur F1. Mais ce dont j'ai besoin est comment puis-je faire cela pour être installé dans le dossier où l'utilisateur installe mon application de telle sorte que lorsqu'il clique sur F1, je dois le lire dans le dossier qu'il a installé et le montrer. Et aussi comment puis-je appeler dans mon application sans appeler quelque chose comme c: \ sample.chm ou quelque chose que je dois l'appeler du répertoire où il étaitComment puis-je créer mon fichier d'aide (CHM) à installer dans le dossier où l'utilisateur installe mon application?

Répondre

1

Après tout j'ai obtenu la solution

private void frmMain_HelpRequested(object sender, HelpEventArgs hlpevent) 
    { 
     string dirpath = string.Empty; 
     string filename = "ACHWINAPP.chm"; 
     dirpath=System.Environment.CurrentDirectory; 
     string[] files=new string[100]; 
     do 
     { 
      if (dirpath ==string.Empty || dirpath == Directory.GetDirectoryRoot(dirpath)) 
      { 
       MessageBox.Show("no helpfile found"); 
      } 
      else 
      { 
       files=Directory.GetDirectories(dirpath,"ACH"); 
       if (files.Length>0) 
       { 
        //MessageBox.Show(files[0]); 
        string strHlp = string.Empty; 
        strHlp = files[0] + "\\ACHWINAPP.chm"; 
        Help.ShowHelp(this, strHlp); 
        break; 
       } 
       else 
       { 
        dirpath = Directory.GetParent(dirpath).ToString(); 
       } 
      } 
     } while (true); 

    } 
1

Pour installer le fichier d'aide, vous devrez ajoutez-le à votre projet d'installation afin qu'il s'installe dans le répertoire avec votre fichier exécutable.

Une fois que vous savez que le fichier d'aide sera dans votre répertoire exécutable, vous pouvez déposer un HelpProvider sur votre formulaire. Ceci connectera votre fichier d'aide au bouton F1. Vous définissez HelpNamespace sur le chemin de votre fichier d'aide. Pour trouver dynamiquement le chemin de votre répertoire, vous pouvez utiliser System.Reflection.Assembly.GetExecutingAssembly().Location pour obtenir le chemin de votre exécutable, puis l'ajouter au nom de votre fichier d'aide.

 string appPath = System.Reflection.Assembly.GetExecutingAssembly().Location; 
    appPath = System.IO.Path.GetDirectoryName(appPath); 
    myHelpProvider.HelpNamespace = System.IO.Path.Combine(appPath, "myHelpFile.chm"); 
+0

je en ai besoin à partir du répertoire de l'emplacement non exécutable je placerai mon fichier d'aide dans mon dossier de travail comme c: \ Appname \ sample.chm i serait Aime lire à partir de cet endroit – Dotnet

+0

Nice. Ensuite, définissez appPath = "quel que soit le répertoire dans lequel se trouve votre fichier d'aide". – msergeant

+0

Comment puis-je définir aveuglément si je vous donne mon MSI, vous pouvez installer quelques-uns où puis comment puis-je obtenir ce chemin – Dotnet

Questions connexes