End MonCodeDeRetour ; comment çà marche ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

End MonCodeDeRetour ; comment çà marche ?

Message par Flype »

où je sais plus programmer, ou il y a un problème !

comment on se sert de la commande End pour faire en sorte que l'exécutable généré retourne un code de retour réutilisable dans un autre programme quand on fait RunProgram() ?

par exemple un programme bidon qu'on compile et appelle rc.exe :

Code : Tout sélectionner

; code de retour

ExitCode.l = MessageRequester("test","test",#PB_MessageRequester_YesNoCancel|#MB_SETFOREGROUND)

; fin

End ExitCode
et un programme tout aussi bidon qui appelle rc.exe :

Code : Tout sélectionner

rc = RunProgram("rc.exe","","",1|2)
Debug rc ; manifestement ce n'est pas mon code de retour d'origine
:x je n'ai pas trouvé comment on fait...
Dernière modification par Flype le mer. 02/nov./2005 21:06, modifié 1 fois.
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

cool j'ai trouvé :

Code : Tout sélectionner

; exécutable

processId.l = RunProgram("rc.exe","","",1|2)

; code de retour

If GetExitCodeProcess_(processId,@ExitCode.l)
  MessageRequester("code de retour",Str(ExitCode))
EndIf
Dernière modification par Flype le mer. 02/nov./2005 21:06, modifié 1 fois.
Image
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Encore un truc à savoir en plus, merci Flype! :)
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Merci Flype, je m'étais cassé les dents sur le même problème.

Enfin résolu :D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ben non, Flype!

Désolé, mais ça ne résoud pas le problème initial qui est "comment on se sert de la commande End pour faire en sorte que l'exécutable généré retourne un code de retour...".

Le code que tu donnes fonctionne, il n'y a pas de doute, mais "End" n'y apparaît pas. :roll:

Ben oui :wink:
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Code : Tout sélectionner

End ExitCode
??
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Droopy a écrit :

Code : Tout sélectionner

End ExitCode
??
Oui..???
Et alors...???
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Code : Tout sélectionner

; code de retour 

ExitCode.l = MessageRequester("test","test",#PB_MessageRequester_YesNoCancel|#MB_SETFOREGROUND) 

; fin 

End ExitCode
la dernière commande est bien End non ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Oui, seulement, cette partie là est dans la question, et pas dans la réponse :lol:
Flype a écrit :où je sais plus programmer, ou il y a un problème !

comment on se sert de la commande End pour faire en sorte que l'exécutable généré retourne un code de retour réutilisable dans un autre programme quand on fait RunProgram() ?

par exemple un programme bidon qu'on compile et appelle rc.exe :Code:
; code de retour

ExitCode.l = MessageRequester("test","test",#PB_MessageRequester_YesNoCancel|#MB_SETFOREGROUND)

; fin

End ExitCode


et un programme tout aussi bidon qui appelle rc.exe :Code:
rc = RunProgram("rc.exe","","",1|2)
Debug rc ; manifestement ce n'est pas mon code de retour d'origine


je n'ai pas trouvé comment on fait...
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Bien vu, j'avais pas vu :wink:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Je comprends rien a ce que vous dites.
Au départ je pensais que End [ExitCode] ne fonctionnait pas correctement, puisque d'une manière ou d'une autre je n'arrivais pas à récupérer cet ExitCode depuis un autre source.
Mais en fait tout va bien, End [ExitCode] fait son travail correctement, c'est RunProgram qui devrait intégrer un nouvel argument (un pointeur sur une variable pour stocker le code de retour).

peut etre à mettre dans la wishlist. :-)
Image
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ben oui, parce qu'en fait, le ExitCode, tu peux le récupèrer avec un GetExitCodeProcess_(), mais c'est pas vraiment le but.

Il faudrait pouvoir le récupérer, soit avec le RunProgram(), soit avec une autre fonction, mais qui soit incluse dans Pure.

Je me suis amusé à faire ça, tout à l'heure:

Code : Tout sélectionner

;- Programme à compiler : "Test.exe"

OpenWindow(0, 100, 100, 100, 100, #PB_Window_SystemMenu, "Test.exe") 

Select MessageRequester("Test.exe", "Voulez vous terminer ce programme ?", #MB_OKCANCEL|#MB_ICONQUESTION)
  Case #IDOK
    End 100
EndSelect

Repeat : Until WaitWindowEvent() = #PB_EventCloseWindow
End

Code : Tout sélectionner

;- Programme pour tester "Test.exe"

processID = RunProgram("Test.exe", "", "", 1)

While code <> 100 : GetExitCodeProcess_(processID, @code.l) : Wend

MessageRequester("Fini", "Le programme ''Test.exe'' est terminé")
End
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

oui on est bien d'accord Chris - par contre RunProgram("Test.exe","","",1) devrait être RunProgram("Test.exe","","",0) sinon ton test ne sert à rien ( 1 = on attends la fin du program, 0 = exécution en tache de fond ) :wink:
Image
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ah oui, tiens....
J'avais pas fait gaffe! :lol:

Bref, l'important, c'est quand même qu'il manque quelque chose pour la récupérer, cette valeur retournée par End
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Tout à fait d'accord :twisted:
Image
Répondre