IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Appel de l'aide MS Helper


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Par défaut Appel de l'aide MS Helper
    Bonjour les amis,

    Pour un logiciel de mon entreprise, je dois mettre à jour l'aide ainsi que son appel.

    J'avais donc opté pour un fichier d'aide .CHM, j'ai conçu ma méthode et tout allait (presque) parfaitement. Sauf que au-dessus, on m'a expliqué que l'interface du fichier .CHM étant trop "laide", il fallait opter pour un autre moyen.
    Avec l'aide de DocToHelp, j'ai étudié les différents formats, et après sélections et tests, j'ai décidé d'utiliser MS Helper.

    J'ai galéré pour pouvoir trouver le logiciel pour ouvrir le format .mshi. A coté de ça, j'ai adapté ce que j'avais fait pour le .CHM, dont voici l'extrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
            /// <summary>
            /// Appelle le fichier d'aide
            /// </summary>
            /// <param name="e"></param>
            /// <param name="fichierAide">Chemin entier du fichier d'aide (nom de fichier compris ainsi que l'extension)</param>
            /// <param name="topic">Nom du topic</param>
            public static void CallAide(System.Windows.Input.KeyEventArgs e, string fichierAide, string topic)
            {
                try
                {
                    if (fichierAide == "")
                    {
                        // Valeur en dure à changer
                        IniReader lecteurIni = new IniReader("C:\\HelpAide.ini");
                        string helpFileIni = lecteurIni.ReadString("HELP", "HELP_FILE");
     
                        //Chemin du fichier d'aide trouvé dans le fichier ini
                        if (helpFileIni != "")
                        {
                            fichierAide = helpFileIni;
                            if (topic == "")
                            {
                                // Information redirection
                                MessageBox.Show("Aucun topic n'a été trouvé ou spécifié : vous allez être redirigé à la page d'accueil de l'aide.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                //Ouvre le fichier d'aide à la page de démarrage
                                System.Windows.Forms.Help.ShowHelp(null, fichierAide);
                                //Passe la fenêtre qui affiche le pb
                                SendKeys.SendWait("{ENTER}");
                                SendKeys.SendWait("{ENTER}");
                            }
                            else
                            {
                                //Ouvre le fichier avec ce topic
                                System.Windows.Forms.Help.ShowHelp(null, fichierAide);
                                //Passe la fenêtre qui affiche le pb
                                SendKeys.SendWait("{ENTER}");
                                SendKeys.SendWait("{ENTER}");
     
                                //Permet de se placer sur l'onglet index
                                SendKeys.SendWait("{TAB}");
                                SendKeys.SendWait("{TAB}");
                                SendKeys.SendWait("{TAB}");
                                SendKeys.SendWait("{TAB}");
                                SendKeys.SendWait("{TAB}");
                                SendKeys.SendWait("{TAB}");
                                SendKeys.SendWait("{RIGHT}");
                                SendKeys.SendWait("{TAB}");
     
                                //Ecrit le mot clé dans la zone de texte
                                SendKeys.SendWait(topic);
     
                                //Appui sur entré pour valider la recherche
                                SendKeys.SendWait("{ENTER}");
                                SendKeys.SendWait("{ENTER}");
                                SendKeys.SendWait("{ENTER}");
                            }
                        }
                        else //Chemin du fichier d'aide pas trouvé dans le fichier ini
                        {
                            MessageBox.Show("Aucun fichier d'aide n'a été spécifié ou n'a pu être trouvé. L'aide ne peut donc pas s'ouvrir.", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        if (topic == "")
                        {
                            // Information redirection
                            MessageBox.Show("Aucun topic n'a été trouvé ou spécifié : vous allez être redirigé à la page d'accueil de l'aide.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
     
                            //Ouvre le fichier d'aide à la page de démarrage
                            System.Windows.Forms.Help.ShowHelp(null, fichierAide);
                            //Passe la fenêtre qui affiche le pb
                            SendKeys.SendWait("{ENTER}");
                            SendKeys.SendWait("{ENTER}");
                            SendKeys.SendWait("{ENTER}");    
                        }
                        else
                        {
                            //Ouvre le fichier avec ce topic
                            System.Windows.Forms.Help.ShowHelp(null, fichierAide);
     
                            //Passe la fenêtre qui affiche le pb
                            SendKeys.SendWait("{ENTER}");
                            SendKeys.SendWait("{ENTER}");
                            //Permet de se placer sur l'onglet index
                            SendKeys.Send("{TAB}");
                            SendKeys.SendWait("{TAB}");
                            SendKeys.SendWait("{TAB}");
                            SendKeys.SendWait("{TAB}");
                            SendKeys.SendWait("{TAB}");
                            SendKeys.SendWait("{TAB}");
                            SendKeys.SendWait("{RIGHT}");
                            SendKeys.SendWait("{TAB}");
     
                            //Ecrit le mot clé dans la zone de texte
                            SendKeys.SendWait(topic);
     
                            //Appui sur entré pour valider la recherche
                            SendKeys.SendWait("{ENTER}");
                            SendKeys.SendWait("{ENTER}");
                            SendKeys.SendWait("{ENTER}");
                        }
                    }
                }
                catch (Exception exp)
                {
                    //MessageBox.Show("Erreur lors de la recherche du fichier : " + exp.ToString(), "ERREUR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


    Et voici l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    else if (e.Key == Key.F1)
    {
         try
         {
              //Fichier d'aide -- A CHANGER
              string file = "C:\\blabla\\testFileAide.mshi";
              string station = "stations";
              string variables = "variables";
     
              //Topic a récupérer
              //string topic = "";
              InterfaceCpp.CallAide(e, file, variables);
          }
          catch (Exception exxx)
          {
     
          }
    }

    Contrairement au fichier .CHM, les paramètres permettant l'accès à la page d'index et de recherches ne fonctionnent pas dans le fichier .MSHI.
    Du coup, comme vous pouvez le voir, j'utilise SendKeys.Send() pour simuler les touches du clavier pour pouvoir effectuer une recherches. Sauf que je trouve ca complètement bourrin et que surtout, cela ne fonctionne que la moitié du temps..


    J'aimerai donc savoir si vous avez une idée :
    - Soit pour un autre type de fichier d'aide, beau et facile d'accès;
    - Soit pour une meilleure manipulation des fichiers MS Helper.


    Précisions :
    - Lors de l'ouverture du fichier .MSHI, un message d'erreur apparaît disant qu'il ne trouve pas le fichier, puis après il me l'ouvre quand même.
    - Le topic est une variable dans laquelle se trouve l'utilisateur dans le logiciel, et ce pourquoi on effectue la recherches dans des index prédéfinis dans le fichier d'aide sur DocToHelp.


    Merci

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    as-tu pensé au HTML ? Ça se prête assez bien au parcours de fichiers d'aide (liens, ancres voire iframe et chargement dynamique de contenu avec un peu de JS statique), ça se lit facilement (avec le navigateur par défaut de l'utilisateur ou un webbrowser intégré à ton appli) et les possibilité de mises en forme sont infinies (CSS).

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Par défaut
    Quand je cherche à compiler avec ce format, j'ai l'erreur comme quoi HxComp.exe ne peut pas être exécuté.
    J'ai cherché à l'installer, mais le seul endroit où je l'ai trouvé, ça à foutu le bordel dans mon PC

    C'est pour ça, j'ai essayé tous les formats, et mis à part en .CHM et MS Helper, rien ne fonctionne.

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Re,

    j'ai répondu "dans l'absolu" (le format HTML convient bien pour les aides) mais je ne sais pas dans quelle mesure tu peux l'employer avec ton code existant. En tout cas la classe Help semble pouvoir s'arranger avec du HTML. A creuser donc.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    En tout cas la classe Help semble pouvoir s'arranger avec du HTML. A creuser donc.

    Qu'entends-tu par "s'arranger avec du HTML" ? Tu veux dire qu'il y a possibilité de changer la visualisation de l'affichage ? Si c'est le cas, je n'ai guère réussi à trouver où cela se fait.

    Ce que je comprends pas, c'est pourquoi avec MS Helper (.mshi), l'accès aux onglets ne s'effectue pas comme avec un fichier .chm...

  6. #6
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut,

    Tout d'abord, je ne connais pas MS Helper.

    Citation Envoyé par valentin_emn Voir le message
    Qu'entends-tu par "s'arranger avec du HTML" ?
    Je ne pense pas qu'il voulait parler d'une génération à partir de MS Helper mais que tu adapte, si c'est faisable, ton code pour écrire directement des fichiers html. Chose que je trouve très judicieux.
    (pardon si j'ai compris de travers vos propos )

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Par défaut
    J'actualise ma demande en vous demandant tout simplement si vous avez une idée d'outils permettant de créer un fichier d'aide beau (pas en chm quoi ), et compatible pour un appel en C#/Télérik WPF.


    Voilà

Discussions similaires

  1. Appel video d'aide incomplet
    Par danbo52 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/03/2010, 22h05
  2. Erreur lors de l'appel d'une méthode Zend Helper
    Par donbrico dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/04/2008, 15h52
  3. Appeler une definition dans un helper
    Par anis50 dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 20/10/2007, 02h42
  4. Un debutant appelle a l aide.A L AIDE
    Par kuinsy13 dans le forum Langage
    Réponses: 8
    Dernier message: 11/09/2006, 07h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo