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 :

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 d’erreur à zéro pour l’exemple
  TerminateProcess(pi.hProcess, 0);                                                  
 }                                                 
}
Actuellement si je fait :

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