|
while문 종료가 어느때 되는지 책을 찾아보세요.
API함수들 하나도 몰라도 기본 문법만 알면 할 수 있는 문제입니다.
궁금합니다 님이 쓰신 글 :
: 프로세스를 종료하는 프로그램을 구현중인데요
: 검색하고 이것저것 찾아보니 만들어놓은 함수가 있더군요
:
: 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문으로 계속 돌리고
: 없으면 리턴으로 빠져나오게 하고 싶은데 혹시 수정할 부분이나 관련 팁이 있다면 부탁드리겠습니다(__)
:
: 점심 맛있게 드시고 환절기 감기 조심하세요~
|