C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[62862] 프로세스 종료 관련 질문드립니다.
궁금합니다 [] 985 읽음    2010-11-03 12:49
프로세스를 종료하는 프로그램을 구현중인데요
검색하고 이것저것 찾아보니 만들어놓은 함수가 있더군요

bool __fastcall TForm1::ProcessKill()
{
  DWORD dwSize = 250;
  HANDLE hSnapShot;
  PROCESSENTRY32 pEntry;
  BOOL bCrrent=FALSE;

  hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPALL,NULL);

  pEntry.dwSize =sizeof(pEntry);
  Process32First (hSnapShot,&pEntry);

  while(TRUE)
  {
    BOOL hRes = Process32Next (hSnapShot,&pEntry);
    if(hRes == FALSE) return false;
    if(!strncmp(pEntry.szExeFile, "aaa.exe",15))
    {
       bCrrent = TRUE;
    }
    if(bCrrent)
    {
      HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pEntry.th32ProcessID);
      if(hProcess)
      {
         if(TerminateProcess(hProcess, 0))
         {
           unsigned long nCode;
           GetExitCodeProcess(hProcess, &nCode);
         }
         CloseHandle(hProcess);
       }
       break;
    }
  }
  return true;
}

실행해보니 아주아주 잘 돌아가긴하는데
프로그램을 돌려보니 한개의 프로세스만 죽이고 종료가 되더군요
기능을 하나 추가해서 같은 이름의 프로세스를 모두 종료할수 있게 만들고 싶습니다.
예를들어 aaa.exe라는 프로그램이 3개가 실행중일때
3개 모두를 종료하려고 하는데
생각처럼 잘 안되네요 ㅜㅜ
프로세서를 검색해서 존재하면 while문으로 계속 돌리고
없으면 리턴으로 빠져나오게 하고 싶은데 혹시 수정할 부분이나 관련 팁이 있다면 부탁드리겠습니다(__)

점심 맛있게 드시고 환절기 감기 조심하세요~

+ -

관련 글 리스트
62862 프로세스 종료 관련 질문드립니다. 궁금합니다 985 2010/11/03
62866     Re:프로세스 종료 관련 질문드립니다. kylix 1280 2010/11/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.