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 :

Executer une commande System en silence ?


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Executer une commande System en silence ?
    Bonjour,

    J'aimerais savoir s'il est possible d'exécuter une commande system en silence, c'est à dire qu'on ne voit pas la fenêtre cmd se lancer ?

    Exemple de ma commande system :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char MaCommande[MAX_PATH];
    sprintf(MaCommande, "asciiebdic.exe temp.txt \"%s\" 1", szFile);
    system(MaCommande);

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Non.
    Il faut utiliser une autre fonction, qui dépendra de ton système d'exploitation.
    Boost ftw

  3. #3
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Comme par exemple CreateProcess sous Windows. Je ne connais pas les équivalents sous les autres OS.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'essaye via CreateProcess par contre je ne trouve pas comment récupérer ma valeur de szFile.

  5. #5
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par t0ny95 Voir le message
    J'essaye via CreateProcess par contre je ne trouve pas comment récupérer ma valeur de szFile.
    Je ne comprends pas ta question. Tu n'arrives pas à le placer dans ta ligne de commande?
    Il faut faire un sprintf() comme tu l'a fait et le copier dans le paramètre lpCommandLine de ton appel à CreateProcess().
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ah ok, je viens de comprendre (enfin j'espère )
    J'ai donc remplacé mon bon vieux system() par un createprocess mais malheureusement, on voit toujours la fenetre dos se lancer. Celà vient peut être de l'exe exécuter.

    Nouvelle action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    sprintf(MaCommande, "asciiebdic.exe temp.txt \"%s\" 1>c:\\log.txt", szFile);
    CreateProcess(NULL,MaCommande,0,0,FALSE,CREATE_DEFAULT_ERROR_MODE,0,0,NULL,NULL);

  7. #7
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Celà vient peut être de l'exe exécuter.
    Certainement.

  8. #8
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par t0ny95 Voir le message
    on voit toujours la fenetre dos se lancer. Celà vient peut être de l'exe exécuter.
    Es-tu bien sûr que lancer ton exe comme cela ne te fera pas apparaître d'IHM?
    Car en appelant un exe de la sorte, tu fais exactement la même chose que lorsque tu double-cliques dessus. Donc si ton exe ne fonctionne qu'avec une IHM, l'appeler par un CreatepProcess() n'y changera rien.
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

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

Discussions similaires

  1. Execution d'une commande systeme
    Par ganjah06 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 24/06/2008, 15h06
  2. executer une commande system
    Par warubi dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/05/2007, 22h57
  3. Execution d'une commande systeme enC?
    Par must19 dans le forum Linux
    Réponses: 4
    Dernier message: 12/04/2006, 19h08
  4. [API][Système] Executer une commande dos avec arguments
    Par oOoOuuhmAn dans le forum Général Java
    Réponses: 4
    Dernier message: 17/03/2006, 12h37
  5. [Debutant(e)][Système]Executer une commande DOS
    Par iceman dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 18/05/2004, 14h30

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