Comment fermer une application avec terminateProcess()?

Signaler
Messages postés
15
Date d'inscription
mardi 18 avril 2006
Statut
Membre
Dernière intervention
7 mars 2007
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
voici une partie de mon code'c'est une boite de dialogue fait avec Visual C++6.0;
comportant 2 commandes boutons,l'un sert à lancer une application par exemple InternetExplorer6
tandisque l'autre bouton sert à le fermer,le problème c'est que le programme ne ferme pas
lorsque j'utilise TerminateProcess(),je ne sais pas s'il manque quelque chose.
*******************************************************************

LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
{
int Select;
switch(message)
{      
        
      
     case WM_COMMAND:
        Select=LOWORD(wParam);

        switch(Select)
     {
          case IDOK:
        {
  PROCESS_INFORMATION pi;
  STARTUPINFO si = {sizeof(si)};
  si.dwFlags = STARTF_USESHOWWINDOW;
  si.wShowWindow = SW_SHOWNORMAL;
  if(!CreateProcess(0,
                "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE http://brunews.free.fr/", 0, 0, 0,
                           CREATE_SUSPENDED, 0, 0, &si, &pi)) return 0;
  ResumeThread(pi.hThread);
  CloseHandle(pi.hThread);
  Sleep(4000);
  EnumThreadWindows(pi.dwThreadId, EnumThrdIeWnds, 0);
  CloseHandle(pi.hProcess);
  return 0;    
            
              }
 

     case IDCANCEL:

      TerminateProcess(pi.hProcess,0);
       return TRUE;
    }

default:
return FALSE;
}

}

1 réponse

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
CloseHandle(pi.hProcess);
hprocess devient invalide.

Réouvrir avec OpenProcess.

ciao...
BruNews, MVP VC++