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 :

invite de commande


Sujet :

C++

Vue hybride

sallsynta invite de commande 20/09/2012, 16h42
Neckara Bonjour, Personnellement,... 20/09/2012, 17h04
Ehonn Utiliser la fonction C system... 20/09/2012, 22h31
Neckara System est bloquant et je ne... 21/09/2012, 06h36
Ehonn Oui (mais c'est pas précisé... 21/09/2012, 10h17
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut invite de commande
    salut, je veux savoir comment afficher l'invite de commande en cliquant sur un bouton dans une interface c ++. merci

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    Personnellement, je tenterais de faire un fork (ou mieux, lancer un thread sans mémoire partagée) puis j'effectuerais un recouvrement avec execlp dans le processus fils ainsi créé.

  3. #3
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    System est bloquant et je ne pense pas qu'il ouvrira une console.

    Il faudra donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include<stdlib.h>
     
    int main(void)
    {
            system("gnome-terminal -e \"sleep 4\"&");
            return 0;
    }
    Déjà si la commande est un peu compliquée, il faudra l'enregistrer dans un fichier et stocker tout son contenu dans un std::string ça risque de ne pas être pratique
    Et si par la suite on souhaite communiquer avec la console, je ne sais pas si cela sera bien facile.

    Tandis qu'avec exec, il suffira de créer un pipe et de redéfinir les entrée et sortie standards.

  5. #5
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Oui (mais c'est pas précisé dans la question ^^)

    Sinon, ce code utilise system et l'appel n'est pas bloquant. Je peux même fermer la fenêtre principale sans que la konsole créée ne se ferme. (cela vient peut être de konsole, je n'ai pas chercher)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // g++ -Wall -Wextra konsole.cpp && ./a.out
     
    #include <string>
    #include <cstdlib>
     
    int main()
    {
    	std::string console = "konsole -noclose";
    	std::string cmd = "bash";
     
    	system((console + " -e " + cmd).c_str());
     
    	return 0;
    }

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    merci de votre réponses..............je pense que ça marche mais la console ne tien pas a l'écran....pouvez vous me rappelez de la fonction qui s'en charge de ça? merci bcp..........

Discussions similaires

  1. passage de paramètres dans l'invite de commande
    Par mr_neness dans le forum Langage
    Réponses: 10
    Dernier message: 18/11/2005, 15h01
  2. Comment lire un wav en invite de commande
    Par sdx dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 02/10/2005, 01h54
  3. compilation avec invite de commandes
    Par new_wave dans le forum Général Java
    Réponses: 1
    Dernier message: 21/07/2005, 22h32
  4. Ecrire dans l'invite de commande
    Par Joeleclems dans le forum MFC
    Réponses: 9
    Dernier message: 08/06/2005, 13h19
  5. [Clavier] Gestion d'une invite de commandes
    Par Damian dans le forum Assembleur
    Réponses: 9
    Dernier message: 28/04/2005, 16h41

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