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

VB 6 et antérieur Discussion :

Retour de valeur à la fin de l'exécution


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    Bonjour,

    Je fais un programme en VB6, sous Windows XP.
    J'aimerais retourner une valeur à la fin du programme pour savoir si celui-ci c'est bien dérouler.

    En comparaison, je voudrait faire un return 0 ou return 1 comme on fait en C à la fin de la fonction principal.
    Après plusieurs recherches, j'ai lu qu'il fallait utiliser la variable ERRORLEVEL.
    Je fais donc
    echo %ERRORLEVEL%
    pour connaitre la valeur de retour du dernier programme utiliser.
    J'ai vérifier en C, cela marche bien

    Pour le VB6, j'ai lu qu'il fallait utiliser ExitProcess.
    Or, cela ne marche pas
    Je vous met mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
     
    Private Sub Form_Load()
        ExitProcess 9
    End Sub
    Ma variable ERRORLEVEL reste à zéro

    J'ai aussi testé la solution de coin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
    Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
     
    Private Sub Form_Load()
     
      Dim lRet As Long
      Dim hProcess As Long
      hProcess = GetCurrentProcess
      lRet = TerminateProcess(hProcess, 2)
    End Sub
    pareil, errorlevel reste à zéro

    Help me please
    Y'a t'il quelque chose de spécial à faire? ajouter une référence?

    Merci

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 95
    Par défaut
    Salut,

    Comment tu lances ton programme ?

    Créer un .Bat qui lance ton vb6 (compiler en .exe) avec derrière un echo %errolevel%

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    c:\toto.exe
    echo %errorlevel%
    pause
    je pense que là ça peux focntionné!!!!


    Coin.

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    ben je le lançait pas dans un .bat, mais dans l'invite de commande.

    je teste ça, mais je vois pas ce que ça peut changer...
    Merci pour ta réponse

    edit :
    effectivement, comme ça je retrouve la valeur
    Mais je sais pas comment ça se passe, mais ça m'écrit directement echo "lavaleur" au lieu de echo %ERRORLEVEL%

    Comment ça se fait que %ERRORLEVEL% ne vaut pas la bonne valeur alors? Je suis obligé d'utiliser un .bat??

    Merci

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 95
    Par défaut
    Cela dépend de ce que tu veux faire ???

    Quel est le but de retourner tes erreurs à la sortie de ton programme ?

    Coin.

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    ben ce que je veux en faire?

    alors j'ai plusieurs programme en VB (ceux que j'aimerais qu'il retourne une valeur).

    Ces programmes VB sont appelés par une IHM écrite en C++/QT.
    J'aimerais donc récupérer le code d'erreur de chacun de ces programmes pour savoir s'ils ont bien fait leur travaille.

    Il faut donc que je récupère le code dans le QT.
    Je suis parti avec QProcess, je sais pas encore si je pourrais récupérer le code...

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    désolé pour le up du sujet, mais j'ai pu récupérer comme je le souhaite le code donner par le ExitProcess dans mon programme C++/QT avec le slot :

    connect(this->programmeVB, SIGNAL(finished(int,QProcess::ExitStatus)),this, SLOT(finProgrammeVB(int,QProcess::ExitStatus)));

    programmeVB étant un *QProcess.

    Voila

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

Discussions similaires

  1. Exécuter une appli console + retour de valeur
    Par Freud44 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/06/2011, 18h07
  2. [VB.NET] Retour de valeur
    Par krfa1 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/05/2006, 10h32
  3. Réponses: 2
    Dernier message: 21/04/2006, 16h40
  4. PB de retour de valeur dans formulaire
    Par Poutchou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/04/2006, 17h10
  5. retour de valeur
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/09/2005, 17h20

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