Comment fermer une application avec terminateProcess()?

jetix Messages postés 15 Date d'inscription mardi 18 avril 2006 Statut Membre Dernière intervention 7 mars 2007 - 7 mars 2007 à 10:50
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 7 mars 2007 à 11:05
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 mars 2007 à 11:05
CloseHandle(pi.hProcess);
hprocess devient invalide.

Réouvrir avec OpenProcess.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous