[QT] lancer mon .doc depuis interface QT

Résolu
Bonjour,

Je souhaite lancer un fichier .doc spécifique depuis mon interface QT. Celui-ci est contenu dans un répertoire donnée dont j'appellerai ici son chemin d'accès : path

La commande suivante marche si je met un .exe comme fichier. Par contre elle ne marche plus pour un autre genre de fichier (.doc ici en l'ocurrence pour mon probleme)
QProcess::startDetached ("path"+"nom du fichier");


J'ai essayé aussi avec :
QProcess::startDetached ("cmd path start monFichier.doc ");

Mais ça ne marche pas.

Par contre ça marche si je met le .doc dans c:/Windows et j'utilise :
QProcess::startDetached ("cmd /c start monFichier.doc ");


Qqun pourrait-il m'aider sur ce point ?

merci
Configuration: Windows XP
Firefox 2.0.0.14
QT 4

3 réponses

  1. un fichier .doc n'est pas un fichier exécutable, donc tu ne peux pas l'éxécuter. Il faut lancer l'éditeur de texte, Word j'imagine, avec le nom du fichier .doc dans la ligne de commande, ex : start word.exe monfichier.doc

    Je pense que tu est victime de l'enrobage Windows, qui associe aux icônes des fichiers le nom du programme qui les utilisent. En programmation, tu ne bénéficie pas de cette astuce.
    1. Contributeur
      enrobage valable sous les environnement kde et gnome de Linux aussi.
      Mais en effet, il faut lancer word (ou l'équivalent) avec comme argument le nom du fichier.
      L'intéret de QProcess est de pouvoir le faire simplement. Quitte à utiliser des commande complquer, autant prendre la fonction system plutôt que QProcess.
      Donc, soi :
      system ("cmd /c start monFichier.doc ");
      soit :
      QProcess::start("word","fichier");
      1. Merci pour vos réponse.

        Une solution est :

        QProcess::startDetached ("cmd /c start c:/QT/MonRep/monFichier.doc ");


        c t juste dans cet ordre qu'il fallait entrer le chemin d'accès.