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 :

Temporisation et code de sortie


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut Temporisation et code de sortie
    Bonjour à tous,

    Je voudrais incorporer ce bout de code (temporisation) dans un script Windows et ce programme doit "rendre" la main au script qui l'a appelé.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include <windows.h> 
    int main( void ) 
    { Sleep( 1000 );
     return 0; }
    Comment feriez-vous ?
    Merci pour vos pistes de réflexion.

    @++

  2. #2
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Y'a pas moyen de faire la temporisation directement dans le script, m'est d'avis que ce serait mieux et plus élégant ! C'est un script dans quel langage ?
    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 !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    Le langage Script que j'utilise est celui de la console CMD de Windows avec des fichiers .bat (anciennement sous Dos)

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @ echo off
     
    call monprogramme_en_C.exe
    Pour la temporisation, j'ai essayé avec choice, mais sans succès et je me suis tourné vers un bout de code C pour faire ce que je voudrais.

    Qu'en penses-tu ?

  4. #4
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par ddr_xp68
    Le langage Script que j'utilise est celui de la console CMD de Windows avec des fichiers .bat (anciennement sous Dos)

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @ echo off
     
    call monprogramme_en_C.exe
    Pour la temporisation, j'ai essayé avec choice, mais sans succès et je me suis tourné vers un bout de code C pour faire ce que je voudrais.

    Qu'en penses-tu ?
    D'après mes derniers souvenir et la consultation de mon livre sur QBasic (hé ouais je l'ai encore ) il existe une fonction SLEEP qui fonctionne de deux manière différente:
    1. Appel de SLEEP sans argument permet de faire une pause jusqu'à interception de l'appui d'une touche du clavier
    2. Appel de SLEEP avec comme argument un temps d'attente en secondes


    Maintenant si on peut utiliser cette fonction en dehors d'un fichier .BAS ca je ne sais pas, il faudrait essayer
    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 !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    D'après mes derniers souvenir et la consultation de mon livre sur QBasic (hé ouais je l'ai encore ) il existe une fonction SLEEP qui fonctionne de deux manière différente:

    1. Appel de SLEEP sans argument permet de faire une pause jusqu'à interception de l'appui d'une touche du clavier
    2. Appel de SLEEP avec comme argument un temps d'attente en secondes


    Maintenant si on peut utiliser cette fonction en dehors d'un fichier .BAS ca je ne sais pas, il faudrait essayer
    C'est vrai que l'idée est bonne, , mais l'instruction sleep n'est reconnu par la console cmd de Windows ( sous XP/2k ds c:\winnt\system32, il n'y a pas d'instruction sleep ou chose similaire )
    C'est pourquoi, je voulais créer l'instruction sleep en C (sleep.exe) , l'a placée dans c:\winnt\system32 pour quelle soit reconnue par cmd de Windows.

    Seulement ma difficulté est que je ne sais redonné "la main" au programme script Windows qui a appellé mon programme C sleep.exe après que celui-ci est terminé. tout simplement ...

    Je sais qu'en C il est possible de donné un code retour en fonction de l'éxecution d'un programme, est-il possible de le faire ?

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par ddr_xp68
    [...]
    Je sais qu'en C il est possible de donné un code retour en fonction de l'éxecution d'un programme, est-il possible de le faire ?
    C'est ce que tu fais avec le return 0;
    Tu retournes 0.
    Je ne sais pas comment on y accède sous windows par contre.
    Sous linux/sh, le résultat est dans la variable d'environmment status.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    C'est sympa ta réflexion, seulment je suis sous Windows. et c'est cet état d'achevement du programme C qui m'intéresse ...

    Ou bien est-il possible de positionner une variable système ou d'environnement dans mon programme C pour que le script cmd Windows puisse récupérer son état.

    J'ai vu un topic sous FAQ C avec la lecture des variables d'environnement, seulement, j'ai essayé d'implémenter l'instruction getenv() dans un bout de code C ,mais Dev-Cpp compile et exécute, seulement Windows "râle" et me génere une erreur d'exécution. ( c'est vrai, je n'ai pas beaucoup d'heures de vol en C )

    Comment faire ?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En batch, tu as deux façons d'interroger le code de retour d'un programme :
    • Sous toutes les versions, le test IF ERRORLEVEL X est vrai si le code de retour du programme est supérieur ou égal à X.
    • Sous une versions assez récente, tu as aussi la variable %ERRORLEVEL% qui est réglée après chaque exécution de programme.
    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.

Discussions similaires

  1. Comment récupérer le code de sortie d'un service ?
    Par CleM_71 dans le forum Windows
    Réponses: 12
    Dernier message: 15/01/2009, 15h49
  2. [MySQL] Code de sortie d'une requête
    Par Tiger-222 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/09/2008, 11h55
  3. Saisie temporisée de code barre
    Par ogeiger dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/03/2008, 11h18
  4. récupérer le code de sortie d'un programme dans un c shell
    Par awalter1 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 17/01/2008, 15h17
  5. code de sortie aprés lancement *.bat
    Par nac dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2007, 12h39

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