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 :

appel à system() sans ouverture de la console


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Par défaut appel à system() sans ouverture de la console
    Bonjour,

    Je voudrais pouvoir faire appel à la fonction system() de manière discrète.
    Je m'explique :

    Lorsque je fais par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("mkdir test");
    La fenetre cmd s'ouvre une fraction de seconde
    J'aimerais qu'elle ne s'ouvre pas du tout.

    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char cmd[128];
     
    strcpy(cmd,"@echo off\n");
    strcat(cmd,"mkdir test");
    system(cmd);
    La fenetre ne s'ouvre pas car la commande n'est pas reconnue : mon dosser test n'est pas créé

    Merci pour votre aide
    Sorry

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par sorry60
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char cmd[128];
     
    strcpy(cmd,"@echo off\n");
    strcat(cmd,"mkdir test");
    system(cmd);
    Horrible !

    Utilise plutôt mkdir(), c'est POSIX.1 donc très portable.

  3. #3
    Membre éclairé Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Horrible !

    Utilise plutôt mkdir(), c'est POSIX.1 donc très portable.
    Oui mais mkdir c'est juste un exemple.
    Le but est un shell, donc j'utilise system(), mais je ne veux pas te cette satanée fenetre noire qui s'ouvre derriere à chaque commande

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par sorry60
    Oui mais mkdir c'est juste un exemple.
    Le but est un shell, donc j'utilise system(), mais je ne veux pas te cette satanée fenetre noire qui s'ouvre derriere à chaque commande
    Un shell qui appelle un shell ? Quel intérêt ?

    Tu as qu'à faire system("cmd.exe") au début de ton code et c'est tout. Ou mieux :

    Demarrer > exécuter > "cmd.exe"

    Affaire réglée.

    Ou alors, tu écris en C chaque fonction du shell, c'est le but, non ? Tu cherches à tricher ?

  5. #5
    Membre éclairé Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Par défaut
    Peu importe que ce que je fais est sans interet ou pas, ce n'est pas ma question.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonjour,

    Citation Envoyé par sorry60
    Peu importe que ce que je fais est sans interet ou pas, ce n'est pas ma question.
    Avez-vous essayé avec la fonction CreateProcess en (entre autres) mettant la valeur SW_HIDE dans le champ "wShowWindow" de la structure STARTUPINFO ?

    Evidemment, ce n'est pas portable...mais le problème ne l'est peut-être pas non plus...

    Cordialement,
    DS.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/11/2014, 08h46
  2. commande system sans interruption du script appelant
    Par alex77722 dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2013, 09h19
  3. [Système][Appel system linux]Différence dossier /link
    Par busta28 dans le forum Général Java
    Réponses: 5
    Dernier message: 16/04/2005, 22h00
  4. Ré-installation (du systeme) sans formatage, possible ?
    Par __fabrice dans le forum Administration système
    Réponses: 11
    Dernier message: 11/04/2005, 12h32
  5. redirection operateur flue >> appel system
    Par philippe V dans le forum MFC
    Réponses: 9
    Dernier message: 16/03/2005, 18h01

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