Partage
  • Partager sur Facebook
  • Partager sur Twitter

Shellexecute avec Qt

Sujet résolu
    13 juin 2008 à 15:02:32

    Bonjour à tous

    J'aimerai savoir comment intégrer la fonction API ShellExecute dans Qt
    "ShellExecute(NULL, "open", "D:\\test.doc", NULL, NULL, SW_SHOWNORMAL)"
    Car j'aimerai intégrer cette fonction dans un slot qui ressemblerait à ça.

    #include <window.h>
    
    class....
    {
    .
    .
    .
    QObject::connect(m_bouton,SIGNAL(clicked(),this,SLOT(ouvrirDocument()));
    
    }
    
    
    void ouvrirDocument()
    {
    QString temp;
    
    temp = ShellExecute(NULL, "open", "D:\\test.doc", NULL, NULL, SW_SHOWNORMAL);
    
    }


    J'ai besoins de l'API Shellexecute, car en deuxième paramètre on peut varier entre "new","open","print", etc... Donc je ne cherche pas forcément une autre solution... Je sais je suis embêtant :p

    Mais voilà, quand je veux lancer la compilation j'ai un tas d'erreur qui se produisent. (P.s. : Je ne suis pas à la maison donc je ne peux pas mettre de screenshot pour l'instant.)

    Je vous remercie d'avance pour votre aide ;)
    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2008 à 15:27:06

      un petit google et hop
      http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx
      • Partager sur Facebook
      • Partager sur Twitter
        13 juin 2008 à 15:32:56

        Merci :)

        Mais j'avais déjà recherché sur google. J'ai déjà utilisé la fonction ShellExecute avec VB6, donc je la connais (du moins un peu), mais je n'arrive pas à la faire fonctionner avec Qt. Ce weekend je vais rajouter un screenshot des erreurs lors de la compilation.

        Merci quand même :)
        • Partager sur Facebook
        • Partager sur Twitter
          13 juin 2008 à 16:12:59

          #include <shellapi.h>

          ne suffit pas?
          • Partager sur Facebook
          • Partager sur Twitter
            14 juin 2008 à 16:08:08

            Voilà l'erreur que je reçois lors de la compilation:

            mingw32-make -f Makefile.Release
            mingw32-make[1]: Entering directory `Z:/Qt/test1'
            g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
            -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS
            _QMAIN -I"c:\Qt\4.4.0\include\QtCore" -I"c:\Qt\4.4.0\include\QtCore" -I"c:\Qt\4.
            4.0\include\QtGui" -I"c:\Qt\4.4.0\include\QtGui" -I"c:\Qt\4.4.0\include" -I"." -
            I"c:\Qt\4.4.0\include\ActiveQt" -I"release" -I"." -I"c:\Qt\4.4.0\mkspecs\win32-g
            ++" -o release\FenPrincipale.o FenPrincipale.cpp
            FenPrincipale.cpp: In member function `void FenPrincipale::exeCute()':
            FenPrincipale.cpp:48: error: cannot convert `const char*' to `const WCHAR*' for
            argument `2' to `HINSTANCE__* ShellExecuteW(HWND__*, const WCHAR*, const WCHAR*,
             const WCHAR*, const WCHAR*, INT)'
            mingw32-make[1]: *** [release/FenPrincipale.o] Error 1
            mingw32-make[1]: Leaving directory `Z:/Qt/test1'
            mingw32-make: *** [release] Error 2


            j'ai intégré :
            #include <windows.h>
            #include <shellapi.h>

            J'arrive pas à résoudre le problème :(
            • Partager sur Facebook
            • Partager sur Twitter
              17 juin 2008 à 17:37:16

              Le code fonctionne avec ShellExecuteA

              ShellExecuteA(NULL,"open","D:\\test.doc",0,0,SW_NORMAL);


              Merci :lol:
              • Partager sur Facebook
              • Partager sur Twitter

              Shellexecute avec Qt

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown