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 :

Programme en console qui s'ouvre et se ferme immediatement


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Programme en console qui s'ouvre et se ferme immediatement
    Bonjour a tous,

    Jusqu'a il y a peu de temps, lorsque je realisais un programme en Python, Java, C ou C++ qui etait une console-application, la boite de commande s'ouvrait, le programme affichait ce qu'il avait a afficher et à la fin j'avais :"press any key to continue", et là ça fermait la fenetre lorsque j'appuyais sur une touche (normal ^^)

    Le probleme depuis peu c'est que la fenetre s'ouvre, la trace du programme s'affiche et ça se referme immediatement

    Donc voilà si vous pouviez m'aider, j'arrete pas d'eplucher tous les sites de google depuis ce matin, et là je suis vraiment desespere.

    Jusqu'a maintenant tout ce qu'on m'a propose c'est de rajouter des systeme("pause") ou equivalent dans mes programmes, mais bon c'est pas une solution qui me satisfait parce que je sais qu'avant ça fonctionnait parfaitement comme ça!

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    1. Déjà, hors d'un EDI, c'est normal qu'une application console se ferme immédiatement. Enfin, c'est considéré normal par WinNT, alors que tu demps des programmes DOS? on pouvait choisir.
    2. Quel EDI utilises-tu ?
      Normalement, tous les EDI exigent un appui sur une touche avant de fermer la fenêtre, sauf Dev-C++ (c'est un des grands inconvénient de cet EDI qui a pourtant des avantages certains).

    PS: Moi, pour résoudre ce problème, j'ai un petit batch dans mon dossier SendTo (qui apparait dans le menu "Envoyer vers") :
    Et là, quand je veux exécuter un programme console et voir son résultat, je fais tout simplement clic-doit->envoyer vers -> mon batch.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Tout d'abord merci pour ta reponse

    Alors en fait j'utilise Jcreator pour le Java, VisualC++ pour le c/c++ et PyScripter
    pour le python, mais ce que je ne comprends pas c'est que jusqu'a maintenant ça fonctionnait parfaitement et que d'un coup ça s'est mis a foirer dans les trois d'un coup!

    C'est pour ça que je soupçonnais un parametre de cmd.exe qui avait saute...

    M'enfin comme le seul remede sous windows a l'air d'etre le formatage j'vais peut etre me laisser tenter...

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Pas sur
    Déjà, ouvre un invite de commandes et tape:
    Si ça marche, tu peux envisager le formatage.
    Si ça ne marche pas, il y a fort à parier que le path vers la commande pause (ou un truc du genre) est perdu et doit être restauré...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Médinoc, j'ai une question par rapport à ton astuce qui permet d'être sûr que la fenêtre de commande d'un batch ne va pas se fermer immédiatement.

    J'ai essayé de taper dans la fenêtre de commande "%*" mais la commande n'est pas reconnue :

    H:\>@%*
    '%*' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    Est-ce que j'ai manqué quelque chose ?

    Pour "Pause", Ok pas de pb.

    Merci,

    Karl.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Il faut que ce soit dans un batch (fichier .bat).
    %* signifie "L'ensemble des paramètres", tout comme %1 signifie "Le premier paramètre", etc.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Merci, vraiment pratique.

    A noter que cela n'a pas le même comportement si on fait du "envoyer vers" avec un fichier batch.

    Exemple, fichier batch hello.bat dont le contenu est :
    Si je fais hello.bat -> bouton droit de la souris "envoyer vers" hello.bat s'ouvre et se referme immédiatement après.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    En effet, c'est vraiment bizarre.
    Je pense que pour un batch, il faut utiliser explicitement la commande call dans le batch appelant...

    Après expérience, on dirait bien. Tu peux toujours te faire deux versions du batch appelant: Une avec call et l'autre sans...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Ok merci.
    Donc je récapitule,

    si le contenu du batch mis dans le répertoire sendto est
    ce code marchera pour les .EXE en console et pour les .BAT

    au contraire si le contenu du batch mis dans le répertoire sendto est
    ce code marchera seulement pour les .EXE en console.

    Note : "marchera" signifie ici que la fenêtre de commande restera ouverte.

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    En théorie.
    Et pour cacher les commandes, tu peux les précéder de @
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    C'était ça le mystère de l'arobase !

    Sur l'exemple hello.bat :

    avec le code :
    on obtient :
    hello
    Appuyez sur une touche pour continuer...
    alors qu'avec le code

    On a :

    C:\Documents and Settings\karl\Desktop>echo hello
    hello

    C:\Documents and Settings\karl\Desktop>pause
    Appuyez sur une touche pour continuer...

Discussions similaires

  1. Console qui ouvre une fenêtre
    Par fab56 dans le forum Langage
    Réponses: 4
    Dernier message: 14/05/2008, 15h23
  2. Fenêtre qui s'ouvre au lancement de programme
    Par breizh44 dans le forum Débuter
    Réponses: 8
    Dernier message: 03/03/2008, 14h22
  3. Fenêtre console qui ouvre toujours
    Par sawbo1 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 23/05/2006, 21h27
  4. programme qui s ouvre, execute et se ferme ..
    Par hijodelanoche dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2005, 09h37
  5. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08

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