반응형
BOOL KillProcess(char *szProcess)
{
if(szProcess==NULL)
return FALSE;
HANDLE hProcessSnap = NULL;
BOOL bRet = FALSE;
PROCESSENTRY32 pe32 = {0};
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
return FALSE;
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32))
{
BOOL bGotModule = FALSE;
MODULEENTRY32 me32 = {0};
do
{
if (::lstrcmpi(pe32.szExeFile, szProcess) == 0)
{
HANDLE hProcess = NULL;
DWORD Code = 0;
hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE, pe32.th32ProcessID);
GetExitCodeProcess(hProcess, &Code);
if (TerminateProcess(hProcess, Code))
{
WaitForSingleObject(hProcess, 1000);
bRet = TRUE;
}
CloseHandle(hProcess);
break;
}
}
while (Process32Next(hProcessSnap, &pe32));
}
CloseHandle (hProcessSnap);
return bRet;
}
반응형
'Game Dev > Article' 카테고리의 다른 글
| EnumWindow (0) | 2008.07.22 |
|---|---|
| Memory Mapped File (0) | 2008.07.22 |
| Capture Screen (0) | 2008.06.16 |
| Send Stream to Notepad (0) | 2008.06.09 |