Как я могу сделать мой файл справки (CHM) для установки в папку, где пользователь устанавливает мое приложение - PullRequest
0 голосов
/ 03 декабря 2010

Я создаю файл CHM, в котором пользователь может получить его, когда щелкнет F1.Но что мне нужно, так это как сделать так, чтобы он был установлен в папке, где пользователь устанавливает мое приложение таким образом, что, когда он нажимает клавишу F1, мне нужно прочитать это из папки, которую он установил, и показать ее.А также как я могу позвонить в моем приложении, не вызывая что-то как c: \ sample.chm или что-то, что мне нужно, чтобы вызвать его из каталога, где он был

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

В конце концов я получил решение

  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 голос
/ 03 декабря 2010

Чтобы установить файл справки, вам нужно добавить его в ваш проект установки, чтобы он устанавливался в каталог с вашим исполняемым файлом.

Как только вы узнаете, что файл справки будет в вашем каталоге исполняемых файлов, вы можете добавить HelpProvider на вашу форму.Это подключит ваш файл справки к кнопке F1.Вы зададите HelpNamespace путь к файлу справки.Чтобы динамически определить путь к вашему каталогу, вы можете использовать System.Reflection.Assembly.GetExecutingAssembly().Location, чтобы получить путь к вашему исполняемому файлу, а затем добавить его к имени вашего файла справки.

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