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 :

Utilisation ShellExecute c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut Utilisation ShellExecute c++
    Bonjour a tous,

    Je viens vous voir car j'ai un problème avec l'utilisation de ShellExecute en c++.

    J'utilise un ShellExecute pour lancer un programme qui me trace une courbe (gnuplot). Le problème c'est que pour passer à la suite de l'execution de mon programme, j'ai besoin d'attendre la fin du ShellExecute.
    Pour l'instant je fais comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ShellExecute(0, L"open",L"D:\\gnuplot\\bin\\wgnuplot", L"\\graphique.txt -persist", 0, SW_HIDE); /*"graphique.txt" est un fichier texte contenant la courbe à tracer.*/
    Sleep(1000);
    ...etc
    Mais j'aimerais ne pas utiliser un Sleep car le temps d'execution varie beaucoup d'un ordinateur à l'autre.
    Si vous avez une solution pour attendre la fin du processus, je suis preneur. J'ai entendu parler de "ShellExecuteEx" mais je ne pense pas pouvoir mettre tous les paramètres dont j'ai besoin;

    Je vous remercie d'avance de passer du temps sur mon problème

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    A ce moment là, j'utiliserai plutôt CreateProcess().

    cela permet de lancer un programme (comme ShellExecute) mais en plus, tu récupères un HANDLE sur le process et tu peux donc faire une attente bloquante (ou avec timeout) sur la fin de ce process avec WaitForSingleObject()
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Par défaut
    Est-ce que par hasard system() ne te conviendrait pas mieux, par hasard?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    La commande system ne me convient pas car je veux pouvoir caché la fenetre de "cmd".


    Je vais me renseigner sur CreateProcess

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    Désolé mais je ne comprend rien sur CreatProcess. Ca m'a l'air assez compliqué et en plus mon niveau d'anglais n'est pas exeptionnel.
    Est ce possible de m'aider un peu plus??

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Ce soir, j'envoie du code et une classe (je l'ai pas sous la main)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Par défaut
    ok, merci beaucoup

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

Discussions similaires

  1. Comment Utiliser ShellExecute ?
    Par Hellgast dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/09/2009, 12h16
  2. Utilisation de ShellExecute
    Par ksoft dans le forum Visual C++
    Réponses: 2
    Dernier message: 26/09/2006, 14h53
  3. Utilisation ShellExecute
    Par figarojuju dans le forum Windows
    Réponses: 7
    Dernier message: 03/05/2006, 10h20
  4. Utilisation de Shellexecute
    Par madislak dans le forum C
    Réponses: 6
    Dernier message: 24/01/2006, 17h43
  5. Comment utiliser ShellExecute avec un programme DOS ?
    Par RC10GT_MGT dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 22/09/2005, 14h23

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