Valeur de retour d'une commande DOS

cs_hastalavista Messages postés 38 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 26 février 2008 - 31 janv. 2008 à 09:48
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 31 janv. 2008 à 11:05
bonjour tout le monde
je voulais savoir comment tester la valeur retourner apres une execution d'une commande dos
en fait j'ai cet instruction dans mon code :
ReturnValue = Shell(commande_dos, vbHide)
cette ReturnValue est toujours > 0 es ca veut dire que si elle est = 0 que la commande n'a pas ete executée ?
merci bcp

3 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
31 janv. 2008 à 10:22
La valeur que te retourne la fonction Shell() n'ets pas al valeur de retour de la commande que tu lances, c'ets le N° de PID du process lancé par Windows pour executer cette commande.
Pour récupérer la valeur de retour de la commande DOS, tu dois mettre en place un "hook" (via des API) sur une console DOS. Je dois avouer ne pas pouvoir t'en dire plus (je n'ai jamais fais ou eu besoin de faire ce genre de truc). Mais je pense qu'une bonne ame pourra t'en dire plus sur le sujet
0
cs_hastalavista Messages postés 38 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 26 février 2008
31 janv. 2008 à 10:31
ok
merci en tout cas
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
31 janv. 2008 à 11:05
des APIs:

OpenProcess pour obtenir un hProcess
WaitForSingleObject  (en boucle)   pour attendre la fin du process
GetExitCodeProcess pour avoir le code de retour
CloseHandle pour libérer le hProcess

tout cela décrit ici
http://www.vbfrance.com/code.aspx?ID=34867

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous