Salut,
Je dispose d'une classe CCommand avec entre autre les fonctions suivantes :
execute() -> executer un processus
stop() -> stopper ce processus
Mon probl�me:
je voudrais que quand le processus tourne, qu'il ne sa passe plus rien avant que le processus soit terminer d'o� un WaitForSingleObject( pi.hProcess, INFINITE ); dans la fonction execute().
Seulement je voudrais aussi commander l'arret du processus � tout moment avec la fonction stop().
Le processus est cr�� avec CreateProcess, la fonction stop() est celle donn�e par la FAQ :
Actuellement si je fait :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 void CPerforceCommand::stop() { PostThreadMessage(pi.dwThreadId, WM_CLOSE, 0, 0); WaitForSingleObject(pi.hProcess, 2000); DWORD dwExitCode = 0; GetExitCodeProcess(pi.hProcess, &dwExitCode); if(dwExitCode == STILL_ACTIVE) //process toujours présent ? { // en dernier recours forcé à la fermeture du process avec un code derreur à zéro pour lexemple TerminateProcess(pi.hProcess, 0); } }
MaCommand.execute();
MaCommand.stop();
stop() n'a lieu que quand MaCommand.execute(); est fini. ( Ce qui est d'une utilit� remarquable... )
: Comment faire pour interompre l'ex�cution de MaCommand.execute() ?
Merci
Partager