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; }