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

Windows Discussion :

[C] fonction system() et fenêtre console


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 15
    Points
    15
    Par défaut [C] fonction system() et fenêtre console
    salut. avac la fonction system je fait apel au dos pour executer une commande,
    mais, puisque la commande s'execute en boucle, un fenêtre console reste ouverte. je voudrais bien qu'elle n'apparaisse pas. dois-je utiliser une autre finction que system ?
    j'ai vu les autres posts concernant le fait de masquer les fenêtre mais rien ne répond à les attentes...

    merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    personne ?

  3. #3
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Je ne crois pas que ce soit possible avec system(). En revanche, il me semble que c'est possible en utilisant CreateProcess().

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Peut-être en utilisant popen()

    a++

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    j'ai un peu regardé de mon coté, et mais je n'ai pas triuvé de fonction qui me permette de specifier les paramètres de ma focnction (car elle prend des paramêtres)
    je vais jeter un coup d'oeuil à CreateProcess()
    merci
    je vous tiens au courant

  6. #6
    Membre éclairé Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Points : 771
    Points
    771
    Par défaut
    Citation Envoyé par e-medi Voir le message
    j'ai un peu regardé de mon coté, et mais je n'ai pas triuvé de fonction qui me permette de specifier les paramètres de ma focnction (car elle prend des paramêtres)
    Je ne suis pas sûr de comprendre. Si vous utilisez system(), c'est qu'il ne s'agit pas d'une fonction mais d'un autre programme B que vous lancez depuis votre programme A (maintenant, ce programme B peut prendre des paramètres en ligne de commande).

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    c'est un peu ça oui
    voici la source avec la fonction shellexecute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include<shellapi.h>
    #include<stdlib.h>
    
    int main(void)
    {
    int c=0;
    
        do{
        ShellExecute(NULL, "open", "chat.exe", "-c the-beat.no-ip.org 7777", "C:\\WINDOWS", SW_HIDE);
        }while(c==0);
    
        return 0;
        }
    quand je lance , une fenètre dos apparais et reste apparente

    j'ai pensé à specifier le handle de la fenêtre qui s'ouvre et le mettre comme premier paramêtre de shellexecute, mais je ne sais pas si ca va marcher ni comment faire

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par e-medi Voir le message
    quand je lance , une fenètre dos apparais et reste apparente
    C'est un problème assez réccurent, tu peux peut-être trouver une solution ici : http://www.developpez.net/forums/sea...archid=1624517
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    voila j'ai trouvé une soulution... avec un peu de bricolage !
    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
    #include<shellapi.h>
    #include<stdlib.h>
    #include<windows.h>
    
    int main(void)
    {
    int c=0;
    
        do{
        FreeConsole();
        ShellExecute(NULL, "open", "chat.exe", "-c the-beat.no-ip.org 7777", "C:\\WINDOWS", SW_HIDE);
        }while(c==0);
    
        return 0;
        }
    le seul hic c'est la "console popup" mais c'est pas grave dans mon cas...
    Merci à tous

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/12/2007, 20h23
  2. [system()] masquer la console
    Par Husqvarna dans le forum C++
    Réponses: 5
    Dernier message: 04/11/2004, 11h23
  3. Réponses: 1
    Dernier message: 20/08/2004, 09h16
  4. Réponses: 2
    Dernier message: 30/03/2004, 11h31
  5. Réponses: 13
    Dernier message: 20/03/2003, 08h11

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