본문 바로가기
IT-개발,DB

[개발/MFC] 프로세스 강제 종료 두번째

by SB리치퍼슨 2011. 4. 15.

내가 특정 프로그램명을 알고 있을 때
그 특정 프로그램의 윈도우 핸들을 구할 수 있다.
그러면, 핸들에서 프로세스 ID를 구할 수 있게 된다.

그 다음 순서는 분명하다.
프로세스를 강제로 종료시키는 것이다.
그럼 아래 소스를 살펴보자.


HWND hOsk=::FindWindow(NULL, "SBRICH");
 if(hOsk)
 {
  CWnd* p = CWnd::FromHandle(hOsk);
  CString sT;
  p->GetWindowTextA(sT);
  DWORD pid2;
  DWORD  pid = GetWindowThreadProcessId(hOsk, &pid2); // 바로서치 핸들로 프로세스 id를 구한다.

  HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid2);
 
      if(hProcess)
      {
         if(TerminateProcess(hProcess, 0))
         {
            unsigned long nCode; //프로세스 종료 상태
            GetExitCodeProcess(hProcess, &nCode);
         }

         CloseHandle(hProcess);
      }

  AfxMessageBox(sT);
 }
 

반응형

댓글