Page 1 sur 1

WaitProgram() et ProgramExitCode()

Publié : ven. 11/juil./2014 15:38
par jmg49
Bonjour,

Mais pourquoi donc quand je lance un :

Code : Tout sélectionner

ping = RunProgram("cmd.exe" ," ?/c ping 10.48.52.1","")
resultat = WaitProgram(ping)         

J'obtiens une erreur L'argument 'Program' spécifié n'est pas valide (ligne resultat... pourtant j'ai bien défini mon RunProgram en tant que ping ... et l'editeur me propose bien ping comme program

de même avec

Code : Tout sélectionner

result = ProgramExitCode(ping)
à la place de WaitProgram(ping)

8O

Bloqué !!!

Merci d'avance

Re: WaitProgram() et ProgramExitCode()

Publié : ven. 11/juil./2014 16:06
par Marc56
Il faut ajouter le paramètre #PB_Program_Open pour que le programme exécuté "communique" avec le suivant.

#PB_Program_Open : Open the program to communicate with it or get information about it.

Là ça marche :P

Code : Tout sélectionner

ping = RunProgram("cmd.exe" ," ?/c ping 10.48.52.1","", #PB_Program_Open)
resultat = WaitProgram(ping) 
(j'ai dû chercher dans la doc, car je ne trouvais pas non plus )
:oops:

PS. Quand tu as une commande avec un tas de paramètre, il est astucieux d'en mettre un par ligne, ça permet de debbuger plus facilement (puisque le le debbuger PB n'indique que le numéro de ligne et pas l'offset). tu peux couper à chaque signe (, + etc)

Code : Tout sélectionner

ping = RunProgram("cmd.exe",
                  " ?/c ping 192.168.0.1",
                  "",
                  #PB_Program_Open)


resultat = WaitProgram(ping)
Évite aussi d'utiliser des mots clés réservés à l'OS (ex: ping) c'est une source potentielle d'erreurs :)

Re: WaitProgram() et ProgramExitCode()

Publié : ven. 11/juil./2014 16:11
par jmg49
je l'ai enlevé ! car je pensais qu'il fallait l'utiliser avec #PB_Program_Read pour farfouiller dans les string de la sortie !!!

:P MErci

Re: WaitProgram() et ProgramExitCode() code de retour d'err

Publié : mar. 15/juil./2014 10:06
par jmg49
chose étrange, je teste la fin du programme avec WaitProgram tout va bien

je peux alors faire un test pour voir le code d'erreur retourné par la commande,

Code : Tout sélectionner

ping = RunProgram("cmd.exe" ," ?/c ping 10.48.50.11","", #PB_Program_Open)

reslutat = WaitProgram(ping)

result = ProgramExitCode(ping)

MessageRequester("error", Str(result), #PB_MessageRequester_Ok)

J'obtiens un code 0 , que l'adresse ip soit joignable au ping ou non !!... 8O


bon....changement, je suis passé par un bon vieux FindString.....et cherché TTL ,

J'ai l'impression que mon test de code d'erreur s'applique sur le cmd.exe et non sur la commande ping

j'ai modifié mon RunProgram de cette façon :
ping = RunProgram("ping.exe" ,"10.48.50.11","", #PB_Program_Open)
J'ai la même.... ip joignable ou pas , return 0