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

MFC Discussion :

[MFC] [VC++6] Lancer plusieurs applications depuis une autre


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut [MFC] [VC++6] Lancer plusieurs applications depuis une autre
    Bonjour à toutes et à tous,

    Avant de poster mon message je suis passé par la faq, j'ai bien trouvé un exemple de code basé sur l'utilisation de ShellExecute mais la compilation tel quel de cet exemple me donne une Access Violation ... alors me voila maintenant sur le forum pour demander de l'aide.

    Je voudrai développer une application simple chargé de lancer plusieurs applications avec une temporisation entre chaque lancement, puis une fois toutes les applications lancées, je voudrais qu'elle se termine sans pour autant terminé les autres ... dans le pire des cas j'accepterai que l'application "lanceuse" reste active mais cachée.

    J'ai essayé d'utilisé la fonction "system" mais cette dernière ne permet de lancer qu'une application.

    Comment faire ?

    D'avance merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    shellexecute est faite pour ca (ou createprocess), montre ton code

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Pour le code c'est exactement celui de la faq.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    HINSTANCE nerror;
    CString strApp="WINWORD";
    nerror=ShellExecute(AfxGetMainWnd()->m_hWnd, NULL, strApp, NULL, NULL, SW_SHOWNORMAL);
    if(reinterpret_cast<int>(nerror) <= 32)
    {
        CString mess;
        mess.Format("Erreur de lancement de l’application:\n%s Erreur n°:%d",(const char *)strApp,nerror);
        AfxMessageBox(mess,MB_ICONEXCLAMATION);
    }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Bon, j'ai essayé avec le code suivant, toujours dans la faq
    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
    SHELLEXECUTEINFO ExecuteInfo;    
    memset(&ExecuteInfo, 0, sizeof(ExecuteInfo));
     
    ExecuteInfo.cbSize       = sizeof(ExecuteInfo);
    ExecuteInfo.fMask        = 0;                
    ExecuteInfo.hwnd         = 0;                
    ExecuteInfo.lpVerb       = "open";                      
    ExecuteInfo.lpFile       = "c:\\windows\\notepad.exe";
    ExecuteInfo.lpParameters = "c:\\mydir\\toto.txt";
    ExecuteInfo.lpDirectory  = 0;
    ExecuteInfo.nShow        = SW_SHOW;
    ExecuteInfo.hInstApp     = 0;    
    if(ShellExecuteEx(&ExecuteInfo) == FALSE)
    {
    // erreur
    }
    et là je n'ai plus d'erreur ... de plus comme tu me l'as dit nico-pyright(c), le fonctionnement correspond toujours à mon besoin.

    Ceci dit je ne sais pas pourquoi le premier exemple de code de la faq me donne une erreur de type Access Violation.

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    ça ne nous dis pas sur quelle ligne il y a eu un acces violation.
    je serais etonné que ce soit sur ces lignes sauf si :
    AfxGetMainWnd() renvoie null. ce qui voudrait dire que ton application n'est pas en graphique MFC.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Dans ce cas, on peut remplacer ->m_hWnd (que je pensais privé) par ->GetSafeHwnd(), qui ne causera pas de plantage si la fenêtre est NULL...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir une application depuis une autre application
    Par Matf4ke dans le forum Android
    Réponses: 1
    Dernier message: 30/11/2012, 10h38
  2. appel d'application depuis une autre application
    Par Cedric G dans le forum Développement iOS
    Réponses: 1
    Dernier message: 05/06/2012, 14h52
  3. Afficher un textes dans une application depuis une autre
    Par amine008 dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 11/07/2011, 17h17
  4. Appeler une application depuis une autre application
    Par Agriesean dans le forum Android
    Réponses: 2
    Dernier message: 30/06/2011, 14h57
  5. Installer application depuis une autre
    Par Viish dans le forum Android
    Réponses: 1
    Dernier message: 14/08/2010, 17h17

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