GetExitCodeProcess () renvoie 1 lorsque le processus n’est pas encore terminé

Si je crée un processus et deux groupes de conduites pour cela, et que ce processus nécessite à un moment donné une entrée utilisateur, le GetExitCodeProcess() de l’API Windows C renvoie toujours 1 . A titre d’exemple, vous pouvez prendre la commande Windows time , cela retournera:

 The current time is: ... Enter the new time: 

Et puis quitte immédiatement sans attendre la saisie.

Je ne veux pas que le processus se termine avant qu’il ne soit vraiment terminé, donc je peux y intégrer des informations. Comment puis-je résoudre ce problème?

J’ai construit cette boucle (je veux quand même pouvoir déterminer quand le traitement est terminé):

 for (;;) { /* Pipe input and output */ if (GetExitCodeProcess(...) != STILL_ACTIVE) break; } 

Merci d’avance.

GetExitCodeProcess ne retourne pas STILL_ACTIVE ; STILL_ACTIVE est le code de sortie renvoyé via le paramètre lpExitCode out. Vous devez tester le code de sortie renvoyé:

 DWORD exitCode = 0; if (GetExitCodeProcess(handle, &exitCode) == FALSE) { // Handle GetExitCodeProcess failure } if (exitCode != STILL_ACTIVE) { break; }